You are on page 1of 29

CLOUD COMPUTING

(INFRASTRUCTURE & RELATED


CONCEPTS)-PART 2
VIRTUALIZATION
• Running a virtual (not real) instance of a computer system like OS, storage etc,
in a layer abstracted from the actual hardware
• Running many OS on a single system at one time
• ‘Virtual’ because another system or piece of hardware not required to run a separate OS
or software etc
• ‘Abstracted’ means to produce or detach something from reality
• Virtualization gave life to cloud computing & its applications
• Many systems could be created on top of a single computer system & used in different
ways
ADVANTAGES OF VIRTUALIZATION
• VMs used for running legacy applications like the software for ATM (blue-screen),
old OS (not updated anymore)
• VMs provide a sandbox for untrusted applications, experimentation & untested
code changes, away from the production environment
• Sandbox also used for executing suspicious code (malware analysis) or advanced malware
detection {zero-day attacks (previously unseen)}

• VMs help in building a secured computing platform as they provide isolation


between the host & the guest (s)
• VMs support running of different OS with different versions
• VMs provide fault and error containment
• Whatever experiments or work done on the guest stays as a part of the guest
ADVANTAGES OF VIRTUALIZATION

• VM tools are great for research & academic experiments


• VMs consolidate the workloads of under-utilized servers
• Saving on hardware, environmental costs & management
• VM makes it easier for administrative staff in migration, backup & recovery
• VMs help in sharing memory in multiprocessor architecture
VIRTUALIZATION
• Virtualization involves, mainly, the following
• Hypervisor or Virtual Machine Monitor (VMM)
• Host Machine (runs the Host OS)
• Guest Machine or Virtual Machine (runs the Guest OS)

• Hypervisor or Virtual Machine Monitor (VMM)


• Computer software, firmware or hardware, on which virtual machines (VMs) are created & run
like Oracle VirtualBox, VMWare Fusion, VMWare Workstation

• Host Machine
• The computer on which the hypervisor is installed to run 1 or more virtual machines (VMs)
• OS of the host machine: Host OS

• Guest Machine
• Each virtual machine (VM) installed in the hypervisor (can be 1 or more)
• OS of the Virtual Machine or Guest Machine: Guest OS
VIRTUALIZATION

• How many virtual machines can be run on a single computer or host machine?
• It depends on the resources like RAM, processing power, memory etc of the host machine
• Virtual Machine Monitor (VMM) can only provide the resources available in the host
machine
VIRTUALIZATION
• Diagram, showing the hypervisor, host machine & the
Guest Machine or Virtual
guest machine (on the right) Machine (Guest OS) (can be
• Guest machines can be more than 1 as shown below more than 1)
• Therefore, more than 1 Guest OS will run
Hypervisor or VMM

Host OS
Guest Machine (Guest Guest Machine (Guest
OS) OS)
Hypervisor or VMM Host Machine (System
Hardware)
Host OS

Host Machine (System Hardware)


VIRTUALIZATION Host Machine (System Hardware)
Host OS
• Another representation (on the right) Hypervisor or VMM
Guest Machine or VM (Guest OS)
• Consider a scenario in cloud computing
• In IaaS, virtualization is being provided by the
cloud vendor
• The consumer installs his own OS or more in IaaS
• Therefore, cloud vendor has the HOST
MACHINE while the consumer installs the GUEST
MACHINE(S) (refer to the diagram below)

Consumer’s OS (Guest Machine running the Guest


OS)
Hypervisor or VMM (virtualization)

Cloud Vendor’s System (Host Machine)


FRAMEWORKS, WHICH USE VIRTUALIZATION
• Virtualization provides multiple environments for execution,
termed as, virtual machine (VM)
• Isolated & supervised by Virtual Machine Monitor (VMM)

• Examples of frameworks, which use virtualization


• Wine: User can execute windows applications on FreeBSD, Linux and
Solaris
• Does not emulate a processor
• Microsoft Virtual Server
• Microsoft Windows NT had many subsystems using virtualization like Virtual
DOS Machine (VDM), Windows with Win32 virtual machine for 16-bit
• Hive: Internally distributed system with multiple independent kernels
• SimOS: machine simulator made by Stanford (Modelling computer systems
like CPUs, caches, multiprocessor memory buses, network devices, drives &
other I/O devices
VIRTUAL MACHINE LANGUAGES
• Java Virtual Machine (JVM)
• Abstract computer with a register set, stack, heap, method area & instruction set
• Can be used as a single-user virtual machine
• UCSD P-System
• Popular in the 70s & early 80s
• A virtual machine running byte-code
• Byte-code: Intermediate language made, from source code, for a VM
• Also called portable code or p-code
• Examples of byte-code
• new (create new object)
• istore (store integer value)
• ladd (add long value)
• swap (swap two values)
• areturn (return value from a function)
BYTE-CODE (EXAMPLES)
• Difference between byte-code & assembly
language:
• Byte-code made for virtual machines
(software)
• Assembly language made for CPU
(hardware)
TYPES OF VIRTUALIZATION

• Server Virtualization (in some cases, also called Hardware Virtualization)


• Network Virtualization
• Storage Virtualization
• Application Virtualization
• Application-Server Virtualization
• Desktop Virtualization
• Administrative/Management Virtualization
• Note: VMs also called containers, in some cases (in different applications)
SERVER VIRTUALIZATION
• Building multiple logical servers on a single physical server
• Partitioning a physical server into multiple virtual servers
• Increasing sharing, utilization & maintaining the capacity of servers
• Consolidation of different servers into one physical server
• Supports redundancy without the need to buy extra hardware
• Legacy systems or outdated systems/services can also be
virtualized
• Supports Migration: Moving a server environment from one place
to another (Moving a virtual server from one physical machine to
another in a network)
• Increased Security

• Types of server virtualization


• Full Virtualization
• Paravirtualization
• OS Virtualization
FULL VIRTUALIZATION
• Usage of HYPERVISOR or VMM to install many
virtual servers on a single physical server
• Physical Server: HOST
• Virtual Servers: GUESTS

• Virtual servers operate independently & are not


aware of other virtual servers
• Hypervisor provides resources to the virtual servers
according to the applications being run
• Hypervisor has its own needs so physical server must
provide resources to it too
• Affects server performance & slows down applications
PARAVIRTUALIZATION

• A newer approach, as compared to Full Virtualization, which helps to lessen the execution time
required to complete the operations, problematic to a virtual environment
• Similar to Full Virtualization but the hypervisor uses less processing power to manage the
virtual OS (guest OS)
• Guest servers are aware of one another
• Each OS is aware of the demands of the other operating systems, placed on the physical server so
management is done accordingly
• Guest OS collaborate & share resources
• Guest OS specifically modified for installation inside a VM
• Whole system works as one (cohesive) unit
• If administrator wants to install different OS, para-virtualization is the best option
OS OR OS-LEVEL VIRTUALIZATION
• Installation of different VMs or guest machines on a single OS
by using a hypervisor (Host: A single OS, not a server)
• Different OS functionality given to every visitor or guest

• No modification required for either host OS or guest OS


• No particular hardware virtualization support required
• Use of Virtual Disks or Virtual Disk Image: An image file used for
storing the guest OS (Virtual Disk can be stored on a server too)
• Private Virtual Disk: Used by only 1 client like a local hard disk (Users
can save information according to the rights assigned)
• Shared/Common Virtual Disk: Used by multiple clients at the same
time (Changes saved in a special cache, which is cleared on restarting
or shutting down the system, thus only default configuration on the
virtual disk always available on bootup)
OS OR OS-LEVEL VIRTUALIZATION
• Can be done over a network
• Clients connect to a an OS virtualization server
• Clients connect to a virtual disk
• OS stored on the virtual disk made available or streamed to the client
OS OR OS-LEVEL VIRTUALIZATION
• Pros
• Flexible Provisioning: Simple & easy to connect different virtual disks to a system through
OS virtualization
• Starting another OS or application is easy for the client
• Rapid Software Development: Adding a new server or workstation is easy & done by
deployment tools (With a few steps, a client is allocated a virtual disk)
• Easy & efficient implanting of updates: Update only to added to the virtual disk image
• Easy rollback scenarios: Rollback to previous state is easy
• Cons
• No work off-line capability: OS virtualization products must be connected to the
virtualization server to use the virtual OS everytime
• High-speed LAN recommended: As virtual disk is connected to a OS virtualization server
through a network, high-speed internet required
• Limited number of OS supported: Some Linux distributions don’t support OS virtualization
KERNEL LEVEL VIRTUALIZATION

• Host OS operates on a specially customized


kernel
• Kernel includes extensions designed to manage
& control several VMs, each having a guest OS
• No need to install a hypervisor
• Examples: User Mode Linux (UML), Kernel-
based Virtual Machine
TYPES OF HYPERVISORS
• Type 1 Hypervisor or Bare Metal Hypervisors
• Installed directly on a physical host server hardware just like an OS
• Run on dedicated hardware
• Used in Full Virtualization & Paravirtualization
• Require a management console
• Used in data centers
• Examples: Oracle OVM for SPARC, ESXi, Hyper-V, Kernel-based Virtual Machine (KVM)

• Type 2 Hypervisor or Hosted Hypervisor


• Installed as a software application on an existing OS
• Supports guest VMs by coordinating calls for CPU, memory, disk & other resources through the
host OS
• Makes it easy for the user to run a VM on a personal computing device
• Examples: Virtual Box, VMWare Fusion, VMWare Workstation Oracle VM for x86, Solaris
Zones
NETWORK VIRTUALIZATION
• Combining all network assets into a mesh or single software-based resource &
dividing up the accessible bandwidth into many channels
• Channels assigned to servers & other devices in real time
• Main method:
• Virtual switches built on top of physical switches or physical Ethernet adaptors (no need
of extra hardware)
• Virtual switches support VMs on the same virtualization hardware to communicate with all
the devices
• Virtual machines also supported by virtual Ethernet adaptors
NETWORK VIRTUALIZATION
• Types of network virtualization:
• External Network Virtualization: Combining of 1 or more local networks or subdivision
into virtual networks (improving the efficiency of large corporate network or data centre)
• Internal Network Virtualization: A single system configured with containers using KVM
domain etc. & combined with hypervisor control programs like Virtual Network Interface
Card (to create ‘network in a box’), Microsoft Virtual Server, OpenSolaris Network

• Supports a large No. of users


• Supports businesses where systems need to be kept up & running at all times
• With distributed channels, network speed increases dramatically, allowing
faster delivery of applications & services
NETWORK VIRTUALIZATION
STORAGE VIRTUALIZATION
• Combining all the physical hard drives into a single group & blocks assigned
to a server for use
• Pool of physical storage devices appearing as a single storage device to the
servers/users
• Examples of storage virtualization objects: Logical Unit Number (LUN), Logical Volume
(LV), RAID group

• Useful for disaster recovery


• Data stored on the vertical storage can be replicated & transferred to
another location (easy data migration)
• No hassle or cost of managing multiple storage devices
• Easy addition or deletion of storage without affecting any application
STORAGE VIRTUALIZATION
APPLICATION VIRTUALIZATION

• Applications virtualized & delivered from a server like Dropbox, Netflix


• Applications run from a server
• Useful for server consolidation
• Easy application & desktop deployment
• Useful for business continuity
• Lower Total Cost of Ownership (TCO) with higher Return on Investment (ROI)
• Applications can be used on the go & can be accessed from any device, given the
internet access
APPLICATION-SERVER VIRTUALIZATION

• Spreading applications across different servers or different servers across


applications
• Also called “Advanced Load Balancing”
• Helps to distribute the workload of an application without overloading a
specific server
• Gives greater network security as only one server is visible to the users & the
rest are hidden behind a reverse proxy network security appliance
DESKTOP VIRTUALIZATION

• Desktop environment (files, applications etc) separated from the physical


device & configured as a ‘Virtual Desktop Infrastructure’ (VDI)
• Allows users to access their files & applications from any device & location,
given the access to internet
• Lower cost of software licensing & updates
• Maintenance & patch management are simple as all virtual desktops are
hosted at a single location
ADMINISTRATIVE/MANAGEMENT VIRTUALIZATION

• Segmenting or separation of admin roles through group and user policies


• Separation of duties
• Example: Group of employees having access to read specific files, rules &
applications but cannot change them while another group can change them
• Mainly used in data centres

You might also like