Operating system based Virtualization
Prerequisites – Types of Server Virtualization, Hardware based Virtualization
Operating system-based Virtualization refers to an operating system feature in which the kernel enables the existence of various isolated user-space instances. The installation of virtualization software also refers to Operating system-based virtualization. It is installed over a pre-existing operating system and that operating system is called the host operating system.
In this virtualization, a user installs the virtualization software in the operating system of his system like any other program and utilizes this application to operate and generate various virtual machines. Here, the virtualization software allows direct access to any of the created virtual machines to the user. As the host OS can provide hardware devices with the mandatory support, operating system virtualization may affect compatibility issues of hardware even when the hardware driver is not allocated to the virtualization software.
Virtualization software is able to convert hardware IT resources that require unique software for operation into virtualized IT resources. As the host OS is a complete operating system in itself, many OS-based services are available as organizational management and administration tools can be utilized for the virtualization host management.
Some major operating system-based services are mentioned below:
- Backup and Recovery.
- Security Management.
- Integration to Directory Services.
Various major operations of Operating System Based Virtualization are described below:
- Hardware capabilities can be employed, such as the network connection and CPU.
- Connected peripherals with which it can interact, such as a webcam, printer, keyboard, or Scanners.
- Data that can be read or written, such as files, folders, and network shares.
The Operating system may have the capability to allow or deny access to such resources based on which the program requests them and the user account in the context of which it runs. OS may also hide these resources, which leads that when a computer program computes them, they do not appear in the enumeration results. Nevertheless, from a programming perspective, the computer program has interacted with those resources and the operating system has managed an act of interaction.
With operating-system-virtualization or containerization, it is probable to run programs within containers, to which only parts of these resources are allocated. A program that is expected to perceive the whole computer, once run inside a container, can only see the allocated resources and believes them to be all that is available. Several containers can be formed on each operating system, to each of which a subset of the computer’s resources is allocated. Each container may include many computer programs. These programs may run parallel or distinctly, even interrelate with each other.
features of operating system-based virtualization are:
- Resource isolation: Operating system-based virtualization provides a high level of resource isolation, which allows each container to have its own set of resources, including CPU, memory, and I/O bandwidth.
- Lightweight: Containers are lightweight compared to traditional virtual machines as they share the same host operating system, resulting in faster startup and lower resource usage.
- Portability: Containers are highly portable, making it easy to move them from one environment to another without needing to modify the underlying application.
- Scalability: Containers can be easily scaled up or down based on the application requirements, allowing applications to be highly responsive to changes in demand.
- Security: Containers provide a high level of security by isolating the containerized application from the host operating system and other containers running on the same system.
- Reduced Overhead: Containers incur less overhead than traditional virtual machines, as they do not need to emulate a full hardware environment.
- Easy Management: Containers are easy to manage, as they can be started, stopped, and monitored using simple commands.
Operating system-based virtualization can raise demands and problems related to performance overhead, such as:
- The host operating system employs CPU, memory, and other hardware IT resources.
- Hardware-related calls from guest operating systems need to navigate numerous layers to and from the hardware, which shrinkage overall performance.
- Licenses are frequently essential for host operating systems, in addition to individual licenses for each of their guest operating systems.
Advantages of Operating System-Based Virtualization:
- Resource Efficiency: Operating system-based virtualization allows for greater resource efficiency as containers do not need to emulate a complete hardware environment, which reduces resource overhead.
- High Scalability: Containers can be quickly and easily scaled up or down depending on the demand, which makes it easy to respond to changes in the workload.Easy Management: Containers are easy to manage as they can be managed through simple commands, which makes it easy to deploy and maintain large numbers of containers.
Reduced Costs: Operating system-based virtualization can significantly reduce costs, as it requires fewer resources and infrastructure than traditional virtual machines.
- Faster Deployment: Containers can be deployed quickly, reducing the time required to launch new applications or update existing ones.
- Portability: Containers are highly portable, making it easy to move them from one environment to another without requiring changes to the underlying application.
Disadvantages of Operating System-Based Virtualization:
- Security: Operating system-based virtualization may pose security risks as containers share the same host operating system, which means that a security breach in one container could potentially affect all other containers running on the same system.
- Limited Isolation: Containers may not provide complete isolation between applications, which can lead to performance degradation or resource contention.
- Complexity: Operating system-based virtualization can be complex to set up and manage, requiring specialized skills and knowledge.
- Dependency Issues: Containers may have dependency issues with other containers or the host operating system, which can lead to compatibility issues and hinder deployment.
- Limited Hardware Access: Containers may have limited access to hardware resources, which can limit their ability to perform certain tasks or applications that require direct hardware access.