YUMSUK-CYB104 2:
Introduction To Cloud
Computing Concepts
Time: Saturdays (2pm to 4pm)
Course Lecturer: Umar Shafiu Haruna
Virtualization
• Virtualization refers to the creation of virtual versions or representations of
various computing resources, such as servers, operating systems, storage
devices, or networks. It enables the sharing and allocation of physical
resources among multiple users or applications, allowing them to operate as if
they had dedicated access to those resources.
• To better understand virtualization, let's consider the analogy of a shared
office space. Imagine a large office building with multiple rooms, desks, and
facilities. In a traditional setup, each person or organization would have their
own dedicated office space. This is similar to how computing resources were
traditionally allocated.
• Now, let's introduce virtualization. Instead of having dedicated office spaces,
the building is divided into virtual offices using partitions or virtual walls. Each
virtual office can be customized and used by different individuals or
organizations, while physically sharing the same infrastructure.
Virtualization
• In computing, virtualization works in a similar way. It allows the creation of
virtual machines (VMs) or virtual environments that run on a single physical
server or computer. Each VM operates as a separate and independent entity,
with its own operating system, applications, and resources, even though they
are sharing the same underlying hardware.
Virtualization
Virtualization
• A hypervisor, also known as a virtual machine monitor (VMM), is a software
or firmware component that enables the creation and management of virtual
machines (VMs) on a physical computer or server. It acts as an intermediary
layer between the underlying hardware and the virtual machines running on
it.
• To understand the role of a hypervisor, let's continue with the analogy of a
shared office space. Imagine that the virtual offices we discussed earlier in the
context of virtualization are managed by an office manager who ensures
smooth operations and manages the resources.
• Similarly, a hypervisor serves as the manager for virtual machines. It provides
an abstraction layer that virtualizes the underlying hardware, allowing
multiple virtual machines to run independently on the same physical server.
Functions of Hypervisor
• Resource Allocation: The hypervisor allocates physical hardware resources, such as CPU, memory,
storage, and network, to each virtual machine. It ensures that the resources are fairly distributed
among the virtual machines and prevents them from interfering with one another.
• Isolation: The hypervisor enforces isolation between virtual machines, ensuring that each VM
operates independently and does not impact the performance or stability of other VMs. This
isolation prevents a VM from accessing or affecting resources assigned to another VM.
• Hardware Abstraction: The hypervisor presents a virtualized view of the hardware to each virtual
machine, making it appear as if the VM has direct access to dedicated resources. This abstraction
allows the VMs to run different operating systems and software applications as if they were
running on separate physical machines.
• VM Management: The hypervisor provides management capabilities for virtual machines,
allowing administrators to create, configure, start, stop, and monitor VMs. It also facilitates tasks
such as VM migration, snapshots, and resource adjustments.
• Performance Optimization: The hypervisor optimizes resource utilization by dynamically
allocating resources based on the needs of each virtual machine. It can adjust resource allocation
in real-time to ensure efficient utilization and maximize overall system performance.
Benefits of Virtualization
• Server Consolidation: Virtualization enables the consolidation of multiple
physical servers into a single server running multiple virtual machines. This
allows better utilization of hardware resources and reduces the number of
physical servers required.
• Resource Allocation and Isolation: Virtualization allows for efficient allocation
of resources, such as CPU, memory, and storage, among different virtual
machines. It also provides isolation between virtual machines, ensuring that
the performance or issues in one virtual machine do not affect others.
• Flexibility and Agility: Virtualization provides flexibility in terms of deploying,
managing, and migrating virtual machines. It allows for easy scaling up or
down of resources as needed, and it simplifies the process of creating and
provisioning new virtual machines.
Benefits of Virtualization
• Testing and Development: Virtualization facilitates the creation of isolated
virtual environments for testing and development purposes. Developers can
create multiple virtual machines with different configurations, allowing them
to test software or experiment without affecting the production environment.
• Disaster Recovery and High Availability: Virtualization enables the creation of
backups and snapshots of virtual machines, making disaster recovery easier. It
also allows for features like live migration, where virtual machines can be
moved from one physical server to another without downtime, providing high
availability.
Virtualization (Summary)
• Virtualization can be implemented at various levels, including server
virtualization, storage virtualization, network virtualization, and desktop
virtualization. Each level offers different benefits and use cases.
• Popular virtualization technologies and platforms include VMware, Microsoft
Hyper-V, KVM, and Xen. These tools provide the necessary software and
management capabilities to create and manage virtual machines and virtual
environments.
• In summary, virtualization is the creation of virtual versions of computing
resources, allowing for efficient sharing, allocation, and management of
physical resources. It provides benefits such as server consolidation, resource
allocation, flexibility, testing and development environments, and disaster
recovery. Virtualization plays a crucial role in modern data centers and cloud
computing, enabling efficient and scalable utilization of resources.