How to recognize between a virtual machine, a virtual server and a virtual network
When you google "what is a virtual machine", you will get back results such as virtual servers, virtual networks, etc. But if you do not have a piece of basic knowledge on this topic, trying to understand the elements that make up the architecture of virtualization can be a bit confusing. In this article, we try to explain as easy as possible how to detect the differences between the main resources that make up a virtualization scheme: machines, networks, and virtual servers.
What is a virtual server
The use of network servers was very common among large companies for many years. However, the costs were very high and the servers were not so efficient. Normally, a server was devoted to a single function, for example, one to host a database, another one for the e-mail client, etc.
Due to the technological evolution of the servers and the increase of their power, using a server for a single function as it was before is inefficient. It would be a pity to use only 15% of a Ferrari power and never be able to experience even 60% of its horsepower right?
The solution to this problem is called virtualization. To imagine how virtualization works, think of cutting a cake into several slices to share with your guests. The complete cake is your server, but when you divide it, each slice becomes a virtual machine that can have its own operating system and applications to be used in different functions. In this way now you have a virtual server whose capacity is used up to 70 or 80%.
How to create a virtual server?
To create a virtual server we need an abstraction layer (virtualization software) between the hardware and the software of the physical server.
When doing so, the physical server translates it into one or more virtual machines and each one is assigned a certain amount of hardware resources (memory, CPU, storage, etc) according to the capacity of the physical server.
In this way, instead of using a lot of physical servers to run separately an email system, a database, etc, all those applications can be virtualized in a single server.
Another advantage that a virtualized server has is its flexibility to migrate virtual machines. What does this mean? That you can move one or more VMs from one server to another without experiencing hardware problems since the VM can be adapted to the new virtualized server resources. There are cases in which you can even copy the virtual machines into USB drivers to move them to other locations.
Among the most popular virtualization software is VMWare, Microsoft Virtual Server or Xen Server. To virtualize servers, a multiprocessor system with 16GB of RAM is usually required in addition to several network connections and storage connectivity.
How many virtual machines can a server host?
Some computer experts such as Gordon Haff from Illuminata, think is difficult to predict how many virtual machines a server can host since there are cases in which virtual machines extract more cache from a processor than a physical server.
In addition, each processor has a different capacity to manage applications and hypervisors. On the other hand, Massimo Re Ferre, senior IT architect at IBM, recommends buying extra power for the server and making it work well at 70% of its capacity instead of exploiting it at 95%.
What is a Virtual Machine?
The virtual machine concept is constantly used in many contexts. In this case, we will talk about the virtualization technology behind the creation of independent environments for the execution of different OSs and applications that normally could not work at the same time in a single server or PC client.
So, what is a virtual machine? In simple terms, is an operating system or an application environment which is installed in software that emules dedicated hardware. Then, the user doesn´t need the resources of a server or computer exclusively dedicated to run a single OS.
For instance, imagine that you could run Linux while working on Windows without being affected or interrupted by the simultaneous operation of both. Everything seems as if you open a new window in your primary OS to work in another program.
A VM needs something called hypervisor. This special software is capable of full emulation of a PC client and all its hardware resources such as memory, hard disk, etc. This technique allows several virtual machines to share resources.
In order for a VM to run Linux and Windows server OSs on the same physical host, the hypervisor must emulate several virtual hardware platforms. They should remain isolated from each other to allow every VM to use them independently without operational conflicts.
One of the biggest advantages of using a VM is that the hardware is used with greater efficiency. However, working in virtualization environments requires more bandwidth, storage, and memory consumption.
Because each VM can consume different amounts of resources, the intervention of an IT professional is needed to balance the demand for each VM.
One of the most important aspects to keep in mind when configuring a virtual machine is the amount of memory it will allocate.
Each VM needs a sufficient amount of memory to run the operating system and the applications, in addition to having at least 32 MB of RAM for emulated video and code cache.
The amount of memory that will be allocated will depend on the user when creating the VM. That amount will be the maximum that the VM will have at its disposal.
To set up again the amount of memory allocated, the virtual machine must be turned off, since it only consumes memory when it is running or paused. When the memory is not enough, the MV simply will not start.
A virtual network works basically under the same concept of virtualization that we reviewed in the previous examples.
Let´s think about a customer who needs to separate their traffic. Normally that would require a high investment in the creation of a new physical network. Nowadays, thanks to virtualization technology, you can create and configure a virtual network using the same physical hardware.
As it happens with a VM, a virtual network needs to be isolated from other virtual networks even though they share the same physical resources such as cables, routers, and switches.
In summary, the flexibility offered by the virtualization of a network allows combining different physical networks in a single virtual network but or divide a physical network into several virtual networks.
How does a virtual network work?
The purpose of a virtual network is to establish an adequate and efficient network structure for all the applications it hosts. A virtual network must be flexible to change its structure through the software according to the service on demand.
While a physical network requires switches, routers, load balancers, and firewalls in its various layers, in addition to a network adapter, in a virtual network all these technical needs are covered with network software.
This is called decoupling virtualization, which means that the function of the network software to from the hardware that hosts it to be used in any other standard hardware.
There are two types of virtual networks: VPN (virtual private network) and VLAN (virtual local area network). A VPN can create a virtual address space that encrypts all the traffic it sends to make it private.
On the other hand, VLAN allows devices to communicate with each other without establishing routing. This is possible because the devices reside within a so-called collision domain, which gives them the possibility to receive the same packet several times.