What Is Virtualization?
The definitions of virtualization are numerous but the simplest (yet very precise) definition is that virtualization is an abstraction of physical resources. This means that you have one physical computer but on it you can run simultaneously a couple of operating systems, each of which runs its own set of applications.
When we speak about virtualization, we usually have in mind the so called server virtualization. Server virtualization is the more popular type of virtualization but in addition to it, there is also storage virtualization. The example in the previous paragraph is about server virtualization – one computer, many operating systems.
Storage virtualization is similar – you can have many separate physical storage devices but when you virtualize them, you can use them as if they are one device. Storage virtualization is still relatively less popular but thanks to the huge volumes of Web 2.0 data and the need for better storage, storage virtualization is quickly catching up.
The Benefits of Virtualization
The definition of virtualization doesn't tell a lot about the benefits of virtualization but these benefits are really great. Here are some of them:
- Virtualization allows to use your existing infrastructure to the fullest. In many cases computers are not used to the fullest. Even in large web hosting companies, it is not rare to report 10-15% utilization of processing power. It is true that hardware is cheaper nowadays but this is not a reason to keep utilization low. With virtualization you can run several servers on one physical machine and this way increase the utilization of your existing infrastructure to 90-95%.
- Virtualization decreases the number of machines you need. When you manage to utilize your machines to the fullest, this decreases the number of machines you need. If we continue the previous example, when you implement server virtualization, you will have one fully-utilized machine do the work of 6-9 others. Just imagine how much savings you will make when you can decrease the number of machines 5 times, yet have them perform the same amount of work!
- Thanks to virtualization you can save energy. Not only you will need less machines for the same amount of work, but you will also experience a drastic decrease in your energy bill. Having in mind how much energy servers consume for powering and cooling, the savings could be really impressive. It is true that if you have just a few machines the savings won't make a drastic difference, but if you have 50 or 100 machines, each running 2-3 virtualized operating systems, the amount of money you will save is certainly not to be underestimated.
- Virtualization makes administration easier. Generally speaking, virtualization makes server administration easier. Well, this is not always necessarily so because virtualization does introduce particular difficulties, but if you know how to use virtualization properly, the result will be that your servers will be easier to manage.
The points listed above are just some of the main benefits of virtualization. There are many more we could discuss but for a beginner in virtualization even these points are enough.
The Dark Sides of Virtualization
There is a saying that if something is too good to be true then it probably is. This applies to virtualization as well. Virtualization might be a great technology but you can't expect it to be perfect. However, when you know the dark sides of virtualization and know how to counteract, virtualization will hardly make your life worse. Here are some of the dark sides of virtualization you might want to consider:
- Virtualization requires powerful computers. The examples in the previous section take for granted that your machines are powerful enough. However, if your machines are old and they are barely working, it might not be possible at all to deploy a virtualization product. But even if you can, the results will be so disappointing that you might give up the virtualization idea for life. If your machines don't have fast CPUs and enough RAM, virtualization will make things worse.
- Virtualization could degrade performance. Even if your machines are really powerful, performance could still be a problem. In some cases the different operating systems you are running on one machine could interfere and fight for resources. In other cases it is just the applications you run a top these operating systems that behave improperly. Anyway, in either case the result could be a tangible performance degradation.
- There are applications that can't run in a virtualized environment. In some cases no matter how much you fine tune your virtualization configuration, the outcome is predictable because there are applications that simply require a dedicated machine. These applications are not many but they are not an exception either.
- There is a single point of failure to watch for. Finally, one of the most unpleasant aspects of virtualization is that there is a single point of failure. If the hypervisor of the virtualization solution or the hardware itself fails, then all your 5-10 virtualized operating systems and servers crash. However, honestly such failures are relatively rare and almost always you can react adequately without losing information.
We listed the dark sides of virtualization not with the idea to scare you. Rather, we wanted to give a fair presentation of both the pros and cons of virtualization. In any case, if you decide to go the virtualization way, you will need to learn more about it than a beginner’s guide to virtualization can offer.