With the advent of new technologies, more and more digital use cases are coming to life. Digital transformation has resulted in infrastructure and software, from hardware to operating systems to applications, to demand more data, processing power, and memory. Virtualization makes serving such requirements possible by enabling a single machine/environment to act like multiple.
We will look at the following in greater detail as we proceed further:
- What is Virtualization?
- What is a hypervisor?
- What is a Virtual Machine? How are virtual machines managed?
- How does virtualization work?
- Types of Virtualization
- What are the benefits of virtualization?
- How secure is virtualization?
- Difference between paravirtualization and full virtualization
- Virtualization vs. containerization
- STL’s Solution
What is Virtualization?
Virtualization is a technology that allows one to create multiple simulated environments or dedicated resources from a single, physical hardware system. It refers to running concurrent operating systems on a single infrastructure/environment. A hypervisor interfaces with the hardware and allows operators to split one system into separate, distinct, and secure environments known as virtual machines (VMs). VMs depend on the hypervisor’s ability to abstract the machine’s resources from the hardware and distribute them appropriately. All applications running on the virtualized machine, run as if they are on their own dedicated machine, where the operating system, libraries, and other programs are dedicated to the guest and unconnected to the host OS, sitting below it. Virtualization makes it possible to split a larger system into many smaller parts, allowing the server resources to be consumed more efficiently by a number of different users or applications with different needs. It also allows isolating resources, keeping programs running inside of a virtual machine safe from the processes taking place in another virtual machine on the same host. Virtualization helps to get the most value from digital infrastructure investments.
What is a hypervisor?
A hypervisor is software to create and fire up virtual machines (VMs). It creates and manages VMs by isolating the operating system and resources from the virtual machines. The hypervisor pools resources like CPU, memory, and storage that can be easily shared between virtual machines and gives each virtual machine the resources that have been allocated. It also manages the scheduling of VM resources against physical resources. Operators control virtual instances of resources such as CPU, memory, storage, and other resources, so guests get the resources on-demand. The physical hardware is still responsible for execution. The CPU is still executing CPU instructions as requested by the VMs, while the hypervisor manages the schedule.
Hypervisors have traditionally been split into two classes:
These are bare-metal hypervisors that run guest virtual machines directly on a system’s hardware, essentially behaving as an operating system.
These are hosted hypervisors that abstract guest operating systems from the host operating system. VM resources are scheduled against the host OS, which is then run against the hardware.
Virtual Machines (VM) and their management
A Virtual Machine (VM) is a compute resource that emulates a physical computer with software to run programs and deploy apps. One or more virtual machines (guest) run on a physical machine (host). Virtual machines may have access to one or multiple resources viz. computing power, host machine’s CPU and memory; one or more physical or virtual storage devices, network interface, as well as any devices such as video cards, USB devices, or any other hardware that is shared. Each virtual machine has its own operating system and functions run separately from the other VMs, even when they are all running on the same host. Imagine a virtual MacOS virtual machine that can run on a physical PC.
VMs are managed using Virtualization Management soft-wares that specializes in simplifying resource administration, enhancing data analyses, and streamlining operations. The software interfaces with virtual environments and the underlying physical hardware. Every new virtual machine (VM) that is created, introduces a combination of 4 key responsibilities:
To process resource allocation requests, and configure VMs
To secure and monitor systems, identify issues, and validate access.
To investigate bugs, retire or reclaim available resources, and project future needs.
To implement all responsibilities across virtual, private/public cloud and hybrid environments
To manage virtualization involves monitoring, administrating and maintaining virtual servers and guest virtual machines, often in hybrid environments across an enterprise. Hybrid environments are complex and consist of 2 or more interconnected virtual, containers, private cloud, or public cloud environments. Private cloud security differs from that of public clouds and commissioning VMs is different from commissioning containers. That added to specific unique business situations, IT stacks, and experience levels, and there is a lot to consider when it comes to choosing the right virtualization management tools.
How does virtualization work?
With virtualization, resources such as application, guest OS or data storage are separated from the underlying software or hardware. The hypervisor, a thin software layer, imitates the functions and actions of the underlying hardware for the abstracted hardware or software and creating multiple virtual machines on a single physical system. While these virtual machines may not perform at par with the OS running on true hardware, it is still more than enough for most systems and applications. Most environments, systems and applications do not consume the full capacity of the underlying hardware. In the absence of this dependency, virtualization offers greater isolation, flexibility and control. Virtual machine technology can be used for many use cases like on-premises and cloud environments. Lately, public cloud services have used virtual machines to provide virtual application resources to multiple users at once, for even more cost-efficient and flexible computing. VMs can be deployed to serve different levels of processing power needs, to run software that requires a different environment, or to test applications in safe, sandboxed environments.
Types of Virtualization
- Desktop virtualization allows the administrator to deploy simulated desktop environments to multiple physical machines concurrently. While traditional desktop environments are physically installed, configured, and updated machine by machine, desktop virtualization allows admins to perform mass configurations, updates, and security checks on all virtual desktops.
- Network virtualization abstracts the management plane from the control plane by combining hardware (such as switches and routers) and software network resources into a single, software-based administrative entity called a virtual network. Hence, the network administrator is able to automate many of the erstwhile manual tasks, making the network much easier to scale.
- Storage virtualization abstracts physical storage resources to give them the appearance of a centralized resource/pool. Pooled resources can be from different vendors and networks. The storage virtualization engine everything between identifying available capacity from multiple storage media, aggregating it, and presenting it to applications.
- Data virtualization allows companies a unified view of their data. It creates an abstraction layer that sources data from different entities without performing a full ETL process, easily accommodates new data sources, and transforms data according to user needs. Data virtualization technology carries out everything from virtually connecting to different databases to integrating all the information to provide virtual views to publishing them as a data service.
- Application virtualization enables the user to interface with the application as if it were native to the device. Application virtualization insulates running programs from the underlying desktop. It is a technology that encapsulates the application from the hosting operating system and enables access to the application without having to install it on the user’s device.
- Data centre virtualization enables data centres to migrate to the cloud. It includes virtualization of physical servers in a facility for data centre, networking, storage and other infrastructure equipment and devices. For modern-day businesses, this enables software-defined and highly automated data centres to provide consistent infrastructure and application delivery across a hybrid cloud environment.
- CPU virtualization involves making a single CPU perform as multiple separate CPUs. It emphasizes on running programs and instructions through a virtual machine. All operations are handled by an emulator that controls software to run according to it. All virtual machines act as physical machines and distribute their hosting resources as if they have various virtual processors.
- GPU virtualization enables the use of a GPU to accelerate graphics or GPGPU applications running on a virtual machine. As a result, a physical GPU installed on a server transforms into multiple virtual GPUs that can be shared across multiple virtual machines. It is no longer a one-to-one relationship from the GPU to the user, but one-to-many.
- Linux virtualization refers to one or more virtual machines on a physical computer that’s operated by the Linux open-source operating system. It enables the consolidation of hardware and software resources used by the Linux OS and allows them to be shared and divided across several virtual machines and their associated processes.
- Cloud virtualization gives customers the flexibility to use only the parts of the service or resources they need, without needing the accompanying physical infrastructure themselves. For storage infrastructure, cloud virtualization allows users to access huge amounts of storage as they need it, and scale this need up and down as necessary, without needing any of their own storage. One can virtualize servers, storage, or other physical hardware or data centre resources, which can allow them to provide numerous services such as infrastructure, software, and platforms.
- Hardware virtualization is the abstraction of computing resources from the software that uses cloud resources. In this type of virtualization, virtual machine software is embedded in the server’s hardware components. This is achieved by the abstraction of the physical hardware part using Virtual Machine Monitor (VMM) or hypervisor.
The benefits of virtualization
- Security: Through virtualization, the system gets protected by a virtual switch that protects all data and applications from harmful malware, viruses, and other cyber threats. The firewall feature for network virtualization helps to create segments within the system. Server virtualization storage on cloud services will save data from the risks of getting corrupted. Cloud services are also encrypted with high-end protocols that protect data from other various threats. Since VMs are logically separated from each other, a malware attack or other software glitch on one VM will not affect other VMs.
- DevOps independence: Since the virtualized environment is segmented into virtual machines, developers can quickly fire up a virtual machine without impacting a production environment. This is ideal for development and testing, as the developer can quickly clone the virtual machine and run a test on the environment.
- Cost efficiencies: With a virtualized environment, a single physical server transforms into many virtual machines. The virtual machines can have the same or different operating systems and run different applications while still all being hosted on a single physical server. Saving on the costs of IT infrastructure is a reality with virtualization. Additionally, companies can increase their ROI by ensuring business continuity in times of disaster and preventing loss of revenue.
- Enhanced resiliency: In a virtualized environment, it is easy to provision, deploy, manage and repair the virtual machine that’s been affected. The recovery process will take minutes—as opposed to the hours it would normally take to provision and set up a new physical server. This significantly enhances the resiliency of the environment.
- Increased productivity and efficiency: With virtualization, IT environments have fewer physical servers to manage and their teams are able to spend lesser time maintaining the physical hardware. Activities like installation, upgrades, and maintenance of the environment across all the virtual machines on the server become a one-stop activity instead of going through the laborious and tedious process of applying the updates server-by-server.
Is virtualization secure?
Virtualization advancements in the areas of computing, networking, and storage are providing powerful new ways so that businesses can abstract the available mechanisms for securing environments from the purely physical world.
- Virtualization security – Compute: Creates and isolates a secure area in memory that is isolated from the operating system and creates a virtual secure mode in which highly sensitive pieces of information can be stored and protected from malicious code exploits.
- Virtualization security – Networking: Abstracts the networking layer from the underlying physical infrastructure and effectively filter and segment traffic based on the constructs of the virtual environment.
- Virtualization security – Storage: Utilizes software-defined storage to effectively use storage policies to granularly secure virtual machines and prevent performance-related security threats.
Paravirtualization vs Full virtualization
Full virtualization is a type of affordable virtualization in which computer service requests are separated from the physical hardware that facilitates them while paravirtualization is an enhancement of virtualization technology where the guest OS is recompiled and then installed inside a virtual machine.
|Functionality||Guest operating systems can communicate with the hypervisor||Guest operating systems |
|Accessing hardware||The guest operating system directly communicates with the hypervisor using drivers||Guest operating system fires hardware calls to access hardware|
|Performance||High performance||Lower performance compared to paravirtualization|
Virtualization vs. Containerization
Virtualization and Containerization offer packaged computing environments that combine various IT components and isolate them from the rest of the system. Their main differences are listed below:
|Isolation||Provides complete isolation between the host operating system and the VMs||Provides lightweight isolation between host and containers, but doesn’t provide strong security as a VM|
|Operating System||Runs a complete operating system including the kernel; Requires more system resources such as CPU, memory, and storage||Runs the user-mode portion of an operating system, and can be tailored to contain just the needed services for your application; Consumes fewer system resources|
|Guest compatibility||Runs any operating system inside the virtual machine independent of the host’s operating system||Runs on the same operating system version as the host|
|Deployment||Deploy individual VMs by using Hypervisor software||Deploy individual containers by using Docker or deploy multiple containers by using an orchestrator such as Kubernetes|
|Persistent storage||Use a Virtual Hard Disk (VHD) for local storage for a single VM or a Server Message Block (SMB) file share for storage shared by multiple servers||Use local disks for local storage for a single node or storage shared by multiple nodes or servers|
|Load balancing||Load balancing is done by running VMs in a failover cluster||An orchestrator can automatically start or stop containers on cluster nodes to manage changes in load and availability.|
|Networking||Uses virtual network adapters||Uses an isolated view of a virtual network adapter. Thus, provides slightly limited virtualization|
At STL, we understand that it is the right time to move away from vertically integrated and boxed solutions with monolithic codes and proprietary interfaces. Firstly, they are expensive to maintain and secondly, they do not allow the flexibility to launch new services quickly.
We develop open, disaggregated and virtualized solutions to provide vendor-neutral access solutions to our customers in the telecom and cloud markets. Our solutions enable hardware and software abstraction at different layers and open up opportunities to rapidly launch services without getting into the complexities of networking. We collaborate with open communities like ORAN, TIP, ONF and ONAP to build open-source and virtualized solutions like vRAN (Virtualized RAN), pFTTx (Programmable FTTx), RIC (RAN Intelligent Controller) and Network Orchestrator. These solutions leverage cloud-based technologies to deliver software-defined vendor-neutral networks and accelerate the deployment of 5G and FTTx solutions at scale.
What does virtualisation mean?
Virtualization enables the creation of software-based, or virtual, representation of applications, servers, storage and networks. It is a very effective way to reduce IT expenses while boosting business efficiency and agility.
What is virtualization used for?
Virtualization finds use in creating useful IT services using resources that are traditionally coupled with hardware. It allows one to use a physical machine’s full capacity by distributing capabilities across multiple environments.
What is virtualization and how does it work?
Virtualization abstracts an application, a guest OS or data storage from the underlying software or hardware. This is achieved via a thin software layer, known as a hypervisor, that imitates the functions and actions of the underlying hardware, and creates multiple virtual machines on a single physical system.
What are the 3 major benefits of using virtualization?
With virtualization, you get better cost efficiencies for your IT spends, increased productivity out of your resources and higher resilience for your environment.
What is an example of virtualization?
A centralized management platform to manage all your servers from a single console that offers High availability, dynamic load sharing, snapshots of disks, machine templates and many more.
What are the virtualization tools?
The following software products are some of the most popular in the market today:
- VMWare workstation player
- Virtual Box
- Citrix Hypervisor
- Microsoft Hyper-V
Why should virtualization be open source?
Open source virtualization offers the benefits of true vendor neutrality, increased flexibility and agility to experiment, guaranteed reduction in TCO, and simplified and industry standardized integrations.
Which virtualization software is best?
There is no one-software-fits-all answer to this. Depending on the specific need, use case and budget, the following software products are some of the most popular in the market today:
- VMWare workstation player
- Virtual Box
- Citrix Hypervisor
- Microsoft Hyper-V
What types of problems are solved with virtualization?
While the list can be endless, depending on the impacted business area and end use-case, the top three problems that virtualization solves are:
- IT hardware management – Imagine having to manage 20 physical servers against managing 1 server which reproduces the functions of all 20
- Data silos – Organisations typically deal with huge amounts of data for different areas of their business to function properly. Virtualization helps create a unified view of all the data without having to go through a laborious Extract-Transform-Load (ETL) process
- Integration between development and testing environments – Virtualization creates separate user environments for the purpose of effective testing. With independent user environments in place, IT teams need not worry about how a test/pre-production software can affect the whole network if they make a mistake.
What is the difference between a container and a virtual machine?
Virtualization and Containerization offer packaged computing environments that combine various IT components and isolate them from the rest of the system. However, they are different! The primary difference between them is that containers provide a way to virtualize an OS so that multiple workloads can run on a single OS instance. With VMs, the hardware is virtualized to run multiple OS instances. Containers are faster, agility, and lightweight which makes them a preferred enabler of streamlined software development.
What’s the difference between virtualization and cloud computing?
The most basic difference lies in the fact that virtualization is a technology and cloud computing is the product of an environment that is enabled by virtualization. Virtualization is the foundation of cloud computing. It allows one to create multiple simulated environments or dedicated resources from a single, physical hardware system. Cloud computing is the act of executing multiple workloads within the cloud environment.
Aren’t VMs just containers?
VMs and containers are not the same. The primary difference between them is that containers provide a way to virtualize an OS so that multiple workloads can run on a single OS instance. With VMs, the hardware is virtualized to run multiple OS instances. Containers are faster, agility, and lightweight which makes them a preferred enabler of streamlined software development.
In which type of virtualization, you create a virtual machine on top of physical hardware?
Hardware virtualization allows one to create a virtual machine on top of physical hardware. This is achieved via a thin software layer, called a hypervisor, which mimics the functions and actions of the underlying hardware – creating multiple virtual machines on a single physical system.