- Published on : 01 July 2018 at 12:51 UTC
Virtualization is increasingly used by businesses, but it's also used by individuals.
But concretely, why use the virtualization and what does it consist of ?
- What is the virtualization ?
- What is a virtual machine ?
- What is a virtual server or VPS ?
- Virtual machine components ?
- What is the difference between host and guest ?
- What is the configuration required for virtualization ?
- My system configuration
- Advantages and disadvantages of virtualization
- The virtualization limits
Originally, virtualization consisted of running a virtual machine on a host machine (as well as a desktop computer, a laptop or a professional server).
For this to be secure, the virtual machine is obviously isolated from the host system. This means that you will not be able, by default, to access the host PC from the virtual machine.
Then, you will see that there is also virtualization of applications. But, we'll see that later.
It's nice to talk about virtual machines, but what is it ?
Currently, virtualization softwares are so sophisticated, it's possible to virtualize many things (such as virtual hard disks, USB controllers, network cards, ....).
Depending on the virtualization software you use, you can even add many virtual devices :
- serial ports
- parallel ports
- different types of hard drives : IDE (PATA), SATA, SCSI or NVME (SSD)
- SSD connected in IDE or SATA
- CD/DVD drives
- floppy drives
You can even change the version of its USB controller (but, you will need to install an additional driver if the guest OS doesn't support it by default).
As the name suggests, a VPS (or Virtual Private Server) is a private virtual server.
In other words, a virtual machine running on a physical server of a host (such as: OVH, 1 & 1 or LWS).
When you create a virtual machine, virtually, it will have at least :
- 1 hard disk : to install the desired operating system.
- 1 CD/DVD drive : to boot on the operating system installation CD/DVD that you want to install it in your virtual machine.
- 1 USB controller : whose default version depends on the operating system chosen to create your virtual machine.
- 1 network card : to access the network and the Internet from your virtual machine
- 1 virtual graphics card : it's more or less efficient depending on the virtualization software used
- and more
When creating a virtual machine, you can also allocate a specific amount of RAM and a number of hearts for its virtual processor.
Then, once the virtual machine is created, you will see that some files have been created on your hard disk.
- configuration files : these files change from one software to another, but always define what your virtual machine is made up of.
- one or more files for the virtual hard disk(s) linked to your virtual machine
- log files : this is particularly the case for virtual machines created with VirtualBox
- and more
The host PC is your computer or physical server.
So, the host operating system (or host OS) is the operating system installed on your physical computer.
For the guest OS, it's the operating system installed in the virtual machine.
To use a virtualization software (such as VirtualBox or others), it's very important to have a processor that supports the processor virtualization (Intel VT-x / AMD-V) and then activate it in the BIOS of your motherboard.
If you can, opt for a processor that supports "Intel VT-x / AMD-V" AND the I/O virtualization "Intel VT-d / IOMMU".
Note : don't forget to activate it in the BIOS of your motherboard.
This will protect your host PC from direct memory access attacks by malicious software running in your virtual machine.
In addition, this feature is required to use Windows virtual machines on the Citrix XenServer virtualization server. Without this feature, it will not work.
For more information about the IOMMU or Intel VT-d, refer to our tutorial : Citrix XenServer - PCI passthrough
Any recent processor supports 64 bits, but this is obviously necessary to run 64-bit guest operating systems.
Since a virtual machine acts like a physical machine, it also needs system resources to function.
The system resources to run a virtual machine with Linux as guest OS are obviously not the same as for a virtual machine with Windows as guest OS.
Depending on your needs, you may need :
- more RAM
- more storage space (hard disks)
- more power (multi-core processors)
- more power at the storage level (use of multiple physical hard drives and why not a RAID controller)
- and more.
In short, the more powerful your PC will be, more you can create virtual machines and they will be performing.
Personally, I am a fan of virtualization, especially since I discovered virtualization and system administration.
To test different virtualization solutions (such as VMware ESXi, Citrix XenServer, Citrix XenApp, ...), I had to buy much more powerful hardware to run everything on a single computer.
Currently, in April 2018, I have a pretty good PC with :
- a "Asus Z97-Pro Wi-Fi AC" motherboard
- a "Intel Core i5-4460 3,20 Ghz" processor
- 32 GB of RAM (to even launch virtual machines in virtualization servers that are themselves virtualized on the host PC)
- several Western Digital (WD) hard drives, including 3 identical ones that are connected to a real RAID controller : Adaptec RAID 6405
First, the choice of the Asus brand is simply linked to the fact that it's a very good brand of motherboard.
While the price is more expensive than other brands (Gigabyte, for example, because low-cost), but it provides a better stability and many features in its BIOS.
Notably, the activation of Intel VT-x and Intel VT-d that are supported by our processor.
Another reason was the presence of an Intel's integrated RAID controller, which is unfortunately not as good as a real RAID controller. Hence the subsequent purchase of this RAID controller : Adaptec RAID 6405.
As mentioned before, there are 2 important features to have when you want to get started in virtualization :
- the processor virtualization : Intel VT-x or AMD-V
- the input/output virtualization (I/O) : Intel VT-d / IOMMU
First, since each machine will use at least a few GB of RAM (except for Linux), these 32 GB allow me to run multiple virtual machines at the same time without saturating the RAM of the physical PC.
The other reason is that to virtualize the virtualization servers (like VMware ESXi or Citrix XenServer), I have to allocate about 10GB of RAM to run virtual machines in these virtualization servers virtualized themselves with VMware Workstation or VirtualBox.
In the business environment, RAID controllers are used for two reasons :
- data security : in fact, the loss of one or two hard disks (depending on the level of RAID used) poses no problem for the recovery of the data stored on these hard disks.
- file server performance : in principle, storing and reading data stored on a RAID volume (RAID 1, RAID 5, ...) is much faster. Which is an advantage and necessary if you want to virtualize virtualization servers.
For more information on RAID controllers, refer to our articles :
- Adaptec RAID 6405 - Unpacking, presentation and advices
- Create and configure a RAID 0, 1, 5, ... (Adaptec)
- Create and configure a RAID 0, 1, 5, ... (Intel)
Note that Adaptec RAID is a true RAID, unlike Intel RAID which is a pseudo-hardware RAID and is therefore less efficient than an Adaptec RAID.
Virtualization has advantages, but also disadvantages.
Virtualization has many benefits for individuals :
- use old programs that are no longer compatible with new versions of Windows, for example
- play again on old games (with a virtual hardware compatible with the game and in some cases with the operating system used)
- be able to test the new version of an operating system, as well as your programs on this new version before using it on your physical PC
- and more.
But also for professionals :
- server virtualization to provide VPS to users, cloud services, ...
- applications virtualization to easily deliver applications to enterprise users by running applications on a single server
- ability to manage server resources as needed. Which offers better flexibility.
- and more.
As with any technology, there are also disadvantages, including :
- some programs can't be launched in a virtual machine
- some games don't work in a virtual environment or at least not with all virtualization solutions (for example : VMware Workstation supports graphics-intensive applications much better than VirtualBox)
- you need licenses for each paid operating system (Windows, Windows Server, ...) for a virtual machine
Although virtualization really allows a lot of things, with the right hardware, it also has its limitations.
Indeed, there are some programs or software solutions that don't work in virtual a virtual environment.
For example, you can't, in theory :
- install and run Hyper-V correctly in a virtual machine
- Test the Windows MultiPoint Server 2012 solution in a virtual machine because you can't pass or create a "physical" USB hub in a virtual machine.
In addition, the "virtual desktops" feature available in Windows MultiPoint Server 2012 resides on the Hyper-V virtualization server. Which, as previously stated, can't be installed in a virtual machine.