Virtualization
Virtualization Definition
➢ A technique of splitting/adding a physical resources/many resources into desired number of logical
resources. e.g., CPU, Memory, storage space
Or
➢ A technique that transforms hardware onto software.
➢ Examples:
➢ Virtual Classroom
➢ Virtualization of IT industry
➢ Video calling
➢ Virtualization of Mobile storage space
➢ Virtualization of a system
➢ Virtualization of storage space in a research center
A Case study to show benefits of virtualization
The expenses of clothing company- Before Virtualization
➢ 2500 sqft data center
➢ 150 physical server (50 for infra and 100 for App)
(4 GB RAM, 2CPU, 128GB HDD)
➢ Cooling system Capex + Opex =
➢ 150 physical disk 1.5 crore per year
➢ Cabling + Power whips
➢ Staff Members
➢ Electricity and Power Backup
➢ Maintenance
Link to study some other case studies
• https://searchdatacenter.techtarget.com/feature/Case-studies-show-the-benefits-of-virtualization
After Introducing Virtualization
AD DNS DHCP ……… Billing
Windows Windows Windows Windows
………
VM1 VM2 VM3 VMn
Hypervisor
Physical machine (Server)
(64GB RAM, 32core CPU, 4 TB HDD)
If we assign (4 GB RAM, 2CPU, 128GB HDD) to each virtual machine then the maximum
number of virtual machines that can be created from the given physical machine is 16.
Traditional Architecture vs. Virtual Architecture
Hypervisor is a software or firmware that
creates and runs virtual machines.
A hypervisor is also called as Virtual
Hypervisor Machine Monitor.
Concept Host Machine - A machine on which a
hypervisor is running one or more virtual
machines.
Guest Machine - Each virtual machine is
guest machine
Types of Virtualization:
Resources to be virtualized
➢ Storage virtualization
➢ Network virtualization
➢ Memory virtualization
➢ Data virtualization
➢ Server virtualization
➢ Desktop virtualization
➢ Application virtualization
Storage virtualization
• Physical host and the locally installed storage devices
are connected.
• With the advancement of technology, local storage is
no longer needed.
• The act of abstracting, hiding, or isolating the internal
functions of a storage (sub) system or service
• from applications and host computers, for the
purpose of enabling application and network-
independent management of storage or data.
Network Virtualization
• The process of logically grouping physical
networks and making them operate as
single or multiple independent networks
• It enables the functional grouping of
. nodes in a virtual network.
• It enables sharing of network resources.
• It allows communication between nodes in a virtual network without routing of frames.
• It enforces routing for communication between virtual networks.
Memory Virtualization
• A technique that abstracts, manages, and optimizes physical memory (RAM) used in computer
systems.
• It creates a layer of abstraction between the RAM and the software running on your
computer. This layer enables efficient memory allocation to different processes, programs, and
virtual machines.
• E.g., computer brain is like a big bookshelf, and all the apps and programs you installed or are running are like
books, librarian is memory virtualization.
• It also decouples the volatile RAM (Temporary memory) from various individual systems and
aggregates that data into a virtualized memory pool available to any system in the cluster.
• Enterprise data comes in many forms and is stored in many
locations.
• There is both structured and unstructured data, including rows
and columns of data in a traditional database, and data in formats
like logs, email, and social media content.
• Big Data in its many forms is stored in databases, log files,
Data CRM, SaaS, and other apps.
Virtualization • Data virtualization integrates data from disparate sources without
copying or moving the data, thus giving users a single virtual
layer that spans multiple applications, formats, and physical
locations. This means faster, easier access to data.
• It helps with data mining, it enables effective data analytics and
is critical for predictive analytics tools.
Server Virtualization
• A hypervisor is installed on server which manages and allocates host
hardware requirements to each virtual machine. This hypervisor sits
over server hardware and regulates resources of each VM.
• Each server in server virtualization can be restarted separately
without affecting the operation of other virtual servers.
• It lowers the cost of hardware by dividing a single server into several
Server virtual private servers.
Virtualization • Data may be stored and retrieved from any location and moved
rapidly and simply from one server to another.
• It enables users to keep their private information in the data centers.
Types of Virtualization: Based on Access Levels
➢ Based on the access of the hardware resources by VM, virtualization can be divided
into two parts:
➢ Full virtualization
➢ Para virtualization
Full
Virtualization
• Full Virtualization was introduced by IBM in
1966.
• It uses binary translation and direct approach
techniques.
• Virtual machine completely isolates the
guest OS from the virtualization layer and
hardware.
• Microsoft and Parallels systems are
examples of full virtualization.
Para
Virtualization
• Virtualization which uses hypercalls for
operations to handle instructions at compile
time.
• Guest OS is not completely isolated but it is
partially isolated by the virtual machine
from the virtualization layer and hardware
• VMWare and Xen are some examples of
paravirtualization
Types of
Virtualization:
Based on the
Placement of
Hypervisor
How Virtualization helps in DevOps environment?
Containerization Concepts
Container
Virtual Machine Vs. Container
Virtual Machine Vs. Container
Container Service VM Service Providers
Providers
1 Docker’s container Vmware - vSphere ESXi,
workstation
Service
2 Google’s Kubernetes Oracle VM VirtualBox Providers:
3 Microsoft Azure - Azure Citrix- Xen built in Linux
Kubernetes Service (AKS) Container
and Azure Service Fabric and VM
4 AWS - EC2 Container Microsoft – Hyper-V,
Service (ECS) Virtual PC
5 IBM Bluemix Linux Kernel Community -
Kernel-based Virtual
Machine (KVM)
6 Red Hat Amazon- AWS EC2
It is an open-source centralized platform
designed to create, deploy and run application
It provides host level virtualization
What is Docker can be installed on any type of OS, but it
Docker? natively runs on Linux distribution.
It is written in GO Language.
Introduced by Solomon Hykes and Sebastin in
March 2013.
Docker
Architecture
Docker Architecture Cont…
Docker
Client
Docker
Docker
Daemon or
Compose
Server
Docker
Ecosystem
Docker Docker
Images Hub
Docker user can communicate
with docker daemon through a
client (via CLI)
Docker
Ecosystem: Client uses command and REST
API to communicate with
Docker Docker Daemon.
Client
One client can communicate
with more than one daemons
Runs on the host OS
Docker
Daemon
Responsible for running
container to manage docker
services
or Server
It can communicate with
other daemons
Docker Host
It is used to provide It contains docker
an environment to daemon, images,
execute and run containers, network
application. and storage
Docker hub / registry
It manages and stores docker images
Two types:
• Public registry : Docker Hub
• Private registry: Images specifically utilized by an enterprises
Docker Images
• Read only binary templates used to create containers
• Single file with all the dependencies and configuration required to run a
program
• Ways to create an Image:
• Pull Image from Docker Hub
• Generate image from Docker file
• Create image of an existing Docker Container
Advantage
• No pre allocation of memories
• Continuous Integration efficiency
• Less costly
• Light Weight
• Can run on Physical machine / virtual machine / on cloud
• Reusability
• Less time to create container
Disadvantage
• Not good for application require rich GUI
• Difficult to manage large amount of containers
• Does not provide cross platform compatibility
• No solution for data recovery and backup
• OS should be same on developer and testing environment.
What will happen if Guest and Host OS is
completely different
• When you run a container with a different OS than the host OS, Docker
will run the container in a virtualized environment.
• It will use more resources than if the container OS and the host OS were
the same.
• This is because the container needs to emulate the underlying hardware
and OS features that are not present on the host OS.
References
▪ https://resources.infosecinstitute.com/topic/11-points-consider-
virtualizing-security/
▪ https://akfpartners.com/growth-blog/vms-vs-containers
▪ https://docs.docker.com/get-started/overview/
▪ https://www.geeksforgeeks.org/virtualization-cloud-computing-types/
▪ https://www.telecomtutorial.info/post/introduction-to-hypervisor-docker-
container