Assignment on Virtualisation
1) Discuss various approaches to Virtualisation in
detail with suitable diagrams.
• Virtualisation can be implemented in different ways depending on the
level at which abstraction takes place. The three major approaches
are:
i. Full Virtualisation : Full Virtualization is a virtualization technique
that simulates an entire physical computer, including its hardware
components, to create multiple virtual machines (VMs) that run
independently on a single physical host.
In this approach, the guest operating system is unaware that it's
running in a virtualized environment, as it interacts with virtualized
hardware that emulates real hardware.
Full virtualization is well-suited for scenarios where you need to run
different operating systems on the same physical server. Such as
hosting multiple Windows and Linux VMs on a single machine.
It offers excellent isolation and security between VMs, making it suitable for
scenarios like cloud computing and data center environments
ii) Para-Virtualisation
In para-virtualisation, the guest OS is modified to be aware that it is running
in a virtualised environment.
Instead of trapping every hardware call, it communicates with the hypervisor
using hypercalls.
This reduces overhead compared to full virtualisation.
Example: Xen hypervisor supports para-virtualisation.
2) Define Virtualization and explain its role in modern
computing.
Definition:
Virtualization is the process of creating virtual representations of computing
resources such as servers, operating systems, storage, or networks. Instead
of using multiple physical devices, a single machine can run multiple isolated
environments simultaneously.
Role in Modern Computing:
Allows one physical machine to act like many computers.
Saves cost by reducing the need for extra hardware.
Improves security by isolating different systems.
Forms the backbone of cloud computing by enabling resource
sharing.
Advantages:
• Strong isolation between VMs.
• Can run multiple OS types on one machine.
• Easier disaster recovery with snapshots.
• Supports legacy applications.
• Resource consolidation reduces hardware costs.
Disadvantages:
• High overhead (each VM runs its own OS).
• Slower performance compared to containers.
• More storage and memory usage.
• Longer startup times than containers.
.3)
Explain different isolation facilities provided by an
Operating System. How do they enhance security?
An operating system provides several mechanisms to ensure processes and
users do not interfere with each other.
Process Isolation: Each running process is kept separate. A faulty process
cannot overwrite memory of another.
Memory Isolation: Virtual memory ensures that each process only accesses
its own address space.
Filesystem Isolation: Permissions and access control lists prevent
users/programs from accessing files they are not allowed to.
Network Isolation: Virtual networks or firewalls can restrict communication
between processes/containers.
User Isolation: Different user accounts with privileges prevent unauthorized
actions.
Security Benefits:
• Protects sensitive data from leaks.
• Limits the spread of malware.
• Ensures system stability, as one crash does not affect others.
• Implements the principle of least privilege.
4) Explain the architecture of Docker and describe its
major software components.
Docker Architecture (Explained from the Diagram)
Docker has three main components:
1. Client
2. Docker Host
3. Registry
1. Client
This is where users interact with Docker.
Users issue commands such as:
o docker build → Build a Docker image from a Dockerfile.
o docker pull → Download images from a registry (like Docker Hub).
o docker run → Create and start a container from an image.
The client sends these commands to the Docker Daemon (server-side process).
2. Docker Host
This is the machine where Docker is installed. Inside it, we have:
🔹 Docker Daemon
A background service (dockerd) that manages:
o Images
o Containers
o Networking
o Storage
It listens to requests from the client and executes them.
🔹 Images
An image is a read-only template with instructions for creating a container.
Example: Ubuntu, Redis, Nginx.
Images are stored locally in the Docker Host after pulling from the registry or
building.
🔹 Containers
A container is a running instance of an image.
Containers include everything needed to run an application: code, runtime, libraries,
dependencies.
Multiple containers can be created from the same image (lightweight and fast).
3. Registry
A registry is a storage/distribution system for Docker images.
Example: Docker Hub (default public registry).
Contains pre-built images like:
o Ubuntu
o Redis
o Nginx
Users can pull images from the registry into the host or push their own custom
images back to the registry.
How It Works
1. User executes command (e.g., docker run nginx).
2. The Docker client sends this command to the Docker daemon.
3. Docker daemon:
o Checks if the image is available locally.
o If not → pulls it from the Registry.
4. From the image, the daemon creates a container.
5. The container runs the application in an isolated environment.
5) Explain the concept of monolithic applications in a
data center. Discuss their limitations compared to
microservices.
Monolithic Applications:
Built as a single large, tightly coupled unit.
All features (UI, business logic, database access) are in one codebase.
Example: Traditional enterprise applications like ERP systems.
Limitations:
• Scalability: Must scale the whole application, even if only one part needs
more resources.
• Deployment Complexity: Small changes require redeploying the entire
application.
• Fault Tolerance: A bug in one module can crash the whole system.
• Slow Development: Teams cannot work independently on small features.
Comparison to Microservices:
Microservices split the application into independent services.
Each service can scale, deploy, and fail independently.
More flexible and aligned with modern cloud-native applications.
6) Differentiate between Containers and Virtual
Machines
Aspect Container Virtual Machine (VM)
A lightweight, isolated unit that A full-fledged virtualized
Definition packages an application with its system that includes an OS,
dependencies. apps, and resources.
Abstraction Abstracts at the application Abstracts at the hardware
Level layer. layer.
Each VM runs its own OS
Operating
Shares the host OS kernel. (guest OS) on top of the
System
host OS.
Size Small in size (MBs). Large in size (GBs).
Startup Very fast (seconds or
Slower (minutes).
Time milliseconds).
Efficient – containers use fewer Resource-heavy – each VM
Resource
resources since they share the needs its own OS, memory,
Usage
host OS. and CPU allocation.
Stronger isolation since each
Process-level isolation using
Isolation VM has its own kernel and
namespaces and cgroups.
OS.
Highly portable across
Less portable (VM images
environments (e.g., run the same
Portability are large and depend on
container on any system with
hypervisor).
Docker).
Performanc Near-native performance since no Slower due to hypervisor
e extra OS overhead. overhead and full OS.
Managed by Hypervisors
Manageme Managed by Docker, Podman,
like VMware, VirtualBox,
nt Tool Kubernetes.
Hyper-V.
Running multiple OSes on
Microservices, CI/CD pipelines,
Use Cases one machine, legacy app
cloud-native applications.
support, OS-level testing.
7) Role of Hypervisors in Virtualisation
A hypervisor is the software (or firmware) layer that enables virtualization.
It allows multiple virtual machines (VMs) to run on a single physical machine by sharing
its CPU, memory, storage, and network resources.
1. Hardware Abstraction
o Makes virtual machines think they each have their own dedicated hardware.
o Translates VM requests into actual hardware operations.
2. Resource Allocation & Management
o Divides physical resources (CPU, RAM, Disk, I/O) among multiple VMs.
o Ensures fairness and efficiency.
3. Isolation
o Keeps VMs separate so one VM crash or attack does not affect others.
4. Monitoring & Control
o Provides administrators control over VM lifecycle (start, stop, migrate,
snapshot).
5. Security
o Controls access to resources, ensuring VMs can only use what is allocated.
6. Flexibility
o Enables running multiple operating systems (Windows, Linux, etc.) on the
same host.
8) what are the key character of monolithic application
1. Single Codebase / Unified Unit
Entire application (UI, business logic, database access) is built and
deployed as one executable package.
2. Tightly Coupled Components
All modules are interdependent and connected within the same
codebase.
A change in one part often affects others.
3. Single Deployment
The whole application must be deployed at once, even for small
updates.
4. Shared Resources
Uses a single database and often shared memory/resources across
modules.
5. Scalability is Vertical
To handle more load, you typically scale by adding more hardware
power (CPU/RAM) to one server rather than splitting into
independent services.
6. Centralized Management
Easier to develop, test, and deploy in early stages since everything is
in one place.
7. Limited Flexibility
Hard to adopt different tech stacks or scale individual features
separately.
9)What is Live Migration of Virtual Machines
• Live migration is the process of transferring a live virtual machine from
one physical host to another without disrupting its normal operation.
(without interrupting its operation)
• Initial Phase: The memory pages of the VM are copied to the
destination host while the VM continues to run on the source host.
• Subsequent Phases: After the initial copy, only the pages that have
been modified (dirty pages) are transferred in subsequent iterations.
• Final Phase: Once the number of dirty pages becomes small enough,
the VM is briefly paused, the remaining pages are copied, and then the
VM is resumed on the destination.
10) Explain the level of trust in virtualization how do
they impact security
Levels of Trust in Virtualization and Their Security Impact
Hardware (Highest trust): If hardware is compromised (e.g., CPU
flaws), all VMs are at risk.
Hypervisor (Critical trust point): Manages VMs; if attacked, it can
lead to VM escape and full system compromise.
Guest OS: Compromise affects only that VM, but isolation must be
strong.
Applications (Lowest trust): First attack surface; breaches here are
usually contained within the VM.
Impact on Security:
Each layer depends on the trust of the layer below.
Hypervisor security is most critical.
Strong isolation limits damage, but vulnerabilities increase the attack
surface.