Вы находитесь на странице: 1из 14

DISTRIBUTED SYSTEM

VIRTUALIZATION

ESGUERRA, JAIR JULIEN VICTOR O.


LOREZO, LAWRENCE T.
SENICA, RAFFY DINO P.
WHAT IS VIRTUALIZATION?

• Putting layers of software between your computer’s hardware.


• Used to divide computer resources for different applications.
• The process to create a “box within a box”, and thus “a virtual machine inside a
physical machine”
• In computing, virtualization refers to:
 Creating a virtual “thing” rather than actual.
 This thing can range to many different topics.
 CPUs, Memory, Operating Systems, applications, peripheral devices, networks, storage, etc.
WHY WE NEED VIRTUALIZATION?

• Virtualization is a major driving force for modern technology, which to an extent indirectly
affects everyone.
• It allows us to tinker and explore problems easier, which results in better and efficient
solutions.
• The concept is applied for different goals:
 Servers and Networking
 Testing environments
 Isolation and Security
 Legacy Systems Support
 Cloud infrastructure
THE IDEA OF VIRTUALIZATION

• Suppose we have a single core CPU. We can run multiple threads/processes


on the same core.
• Each thread is running a set of instructions.
• Same illusion can be extended to other hardware resources (resource
virtualization).
WHAT DOES VIRTUALIZATION DO?

• Interface exchange that can happen in different levels of computer layers.


• ISA level: (1) general instructions (2) privileged instructions.
• System –call level (OS level)
• Library calls (API level)
• Quite helpful for heterogeneous platforms running different and possibly
independent applications.
• Run multiple instances on a single platform.
SUMMARY OF INTERFACES

• Applications can use library functions to reach out to system calls.


• System calls are used by libraries to reach out to the operating system.
• This way applications can use the privileged instructions that can only be called by the OS kernel.
• On the other hand, both applications and libraries can call general instructions without OS
interaction.
REALIZATION OF VIRTUALIZATION

• Virtualization can be realized in two different ways:


 A run time system that provides an abstract instruction set used by the upper layer
application. The run time environment interprets instructions (java runtime) or emulates
them.
 Virtual machine monitor to shield the entire hardware.
HYPERVISORS

• Another name for Virtual Machine Manager (VMM).


• Abstracting resources to hide the underlying hardware.
• Create/manage virtual machines.
• Two different types:
 Type I (bare metal or native) – hypervisor is directly installed on the hardware. Takes control of the hardware.
 Type II (hosted) – hardware has already an OS on it. Hypervisor is installed on the host OS.

• Type I requires a management console.


 Usually installed in a remote compute to configure the hypervisor.
 Responsible for dynamic allocation of OS instances between different hypervisors and protect them against failures.

• Type II requires no management console.


 It assigns resources to instances irreversibly.
 Instances use host’s network when connecting internet.
 Two different kernel running on the same hard. Bulky
TYPES OF VIRTUALIZATION

• Full Virtualization/Emulation
 guest OS is completely decoupled from the underlying hardware.
 Trying to replicate hardware behavior, entirely in software (e.g.: Real-time clock).
 Pros: Hardware independent, Cons: Extremely slow
• Para-virtualization
 guest OS is modified to enable communication with the hypervisor to improve performance and efficiency.
 Modify virtual machine software in order to be aware that it is running under a hypervisor (e.g.: storage device).
 Pros: Relatively fast, Cons: Need to modify guest hardware
• Hardware virtualization
 privileged and sensitive calls automatically trap to the hypervisor. No need for binary translation or para-virtualization.
 E.g.: CPU/memory. Hardware supports virtualization software to run natively guest instructions.
 Pros: Near-native performance, Cons: Relies on specific hardware
KVM, QEMU, LIBVIRT

• KVM (Kernel-based Virtual Machine) and QEMU (Quick Emulator) (Type-II) are both
hypervisors.
• They are used together (must-Type-1). QEMU is slower.
• KVM helps QEMU to utilize hardware virtualization features.
• KVM also adds acceleration feature.
• Libvirt is a virtualization management library.
• Libvirt comes with an API, a daemon and a command line tool.
EXAMPLES OF VIRTUALIZATION

• Software development
 Boot multiple instances of Oss, at the same time, on the same physical machine.
 Develop applications for multiple Oss without the need to test them on separate computers.
• Legacy software/hardware support
 Newer platforms do not always support old legacy software.
 Virtualization allows to use legacy software or even virtualize extinct platforms.
• Network Function Virtualization
 Network vendors require specialized hardware for specific network functions (routing, packet handling, load balancing, etc.)
 Instead virtualization allows to implement network functions as Virtual Machines, and deploy them easier and efficiently.
SOURCES

• https://www.youtube.com/watch?v=K81mg2HvtDI
• https://www.youtube.com/watch?v=XItj08D5KPk
• https://www.youtube.com/watch?v=WHIrGfNFwVo
THANK YOU ( ͡° ͜ʖ ͡°)

Вам также может понравиться