CLOUDUnit 2
CLOUDUnit 2
– An abstraction of an execution environment that can be made dynamically available to authorized clients by using
well-defined protocols,
– Hypervisor intercepts and emulates instructions from VMs, and allows management of VMs,
Type 1 hypervisor executes on bare system. The type 1 hypervisor does not have any host operating system because they are installed
on a bare system. A type 1 hypervisor—also called a bare-metal hypervisor—runs directly on the computer hardware. It has some
operating system capabilities and is highly efficient because it interacts directly with the physical resources. LynxSecure, RTS
Hypervisor, Oracle VM, Sun xVM Server, VirtualLogic VLX are examples of Type 1 hypervisor.
Type 2 hypervisor is a software interface that emulates the devices with which a system normally interacts. A type 2 hypervisor runs
as an application on computer hardware with an existing operating system. Use this type of hypervisor when running multiple
operating systems on a single machine.
Containers, KVM, Microsoft Hyper V, VMWare Fusion, Virtual Server 2005 R2, Windows Virtual PC and VMWare workstation 6.0
are examples of Type 2 hypervisor. The following diagram shows the Type 2 hypervisor.
Virtual Machines or cloud instances
● VM technology allows multiple virtual machines to run on a single physical machine.
● After you install virtualization software on your computer, you can create one or more virtual machines. You can
access the virtual machines in the same way that you access other applications on your computer. Your computer is
called the host, and the virtual machine is called the guest. Several guests can run on the host. Each guest has its own
operating system, which can be the same or different from the host operating system.
● From the user’s perspective, the virtual machine operates like a typical server. It has settings, configurations, and
installed applications. Computing resources, such as central processing units (CPUs), Random Access Memory
(RAM), and storage appear the same as on a physical server. You can also configure and update the guest operating
systems and their applications as necessary without affecting the host operating system.
● Performance: Para-virtualization (e.g. Xen) is very close to raw physical performance!
1. Hardware Virtualization.
2. Operating system Virtualization.
3. Server Virtualization.
4. Storage Virtualization.
5. Desktop virtualization
6. Network virtualization
7. Data virtualization
8. Application virtualization
Hardware Virtualization
When the virtual machine software or virtual machine manager (VMM) is directly installed on the hardware system is known
as hardware virtualization.
The main job of hypervisor is to control and monitoring the processor, memory and other hardware resources.
After virtualization of hardware system we can install different operating system on it and run different applications on
those OS.
Usage:
Hardware virtualization is mainly done for the server platforms, because controlling virtual machines is much easier than
controlling a physical server.
● Full Virtualization
● Emulation Virtualization
● Paravirtualization
Full Virtualization
In full virtualization, the underlying hardware is completely simulated. Guest software does not require any
modification to run. Full Virtualization was introduced by IBM in 1966. It is the first software solution for server
virtualization and uses binary translation and direct approach techniques. In full virtualization, the virtual machine
completely isolates the guest OS from the virtualization layer and hardware. Microsoft VMware vSphere/ESXi,
Microsoft Hyper-V,Oracle VirtualBox and Parallels systems are examples of full virtualization.
▪ Hypervisor Layer:
Full virtualization relies on a hypervisor, also known as a Virtual Machine Monitor (VMM), which sits
between the physical hardware and guest operating systems. The hypervisor manages and controls the
allocation of physical resources to virtual machines.
▪ Hardware Virtualization:
Full virtualization uses hardware-assisted virtualization technologies like Intel VT-x or AMD-V to enhance
performance. These technologies allow the hypervisor to run guest OSes directly on the physical CPU
without significant performance overhead.
▪ Isolation:
VMs created through full virtualization are completely isolated from each other. Each VM runs its own
instance of the guest operating system, which cannot interfere with other VMs.
Emulation Virtualization
In Emulation, the virtual machine
simulates the hardware and hence
becomes independent of it. In this,
the guest operating system does
not require modification.
Paravirtualization
In Paravirtualization, the hardware is not simulated. The guest software run their own isolated domains.
Paravirtualization is the category of CPU virtualization which uses hypercalls for operations to
handle instructions at compile time. In paravirtualization, 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.
● Hypervisor Layer:
Similar to full virtualization, paravirtualization also employs a hypervisor, but here,
the guest operating systems are aware of it. The hypervisor provides a set of APIs
that guest OSes must use to communicate with the underlying hardware.
● Guest OS Modifications:
Guest operating systems must be modified to replace certain hardware-related
instructions with hypercalls, which are calls to the hypervisor. These hypercalls
allow the guest OS to request services from the hypervisor, such as memory
management or CPU scheduling.
● Performance Benefits:
Since para virtualization avoids the overhead of emulating complete hardware, it
often offers better performance than full virtualization. Guest OSes can communicate
more directly with the hypervisor, resulting in improved efficiency.
● Examples:
Xen is a widely-used hypervisor that supports para virtualization. It is known for its
performance and scalability in virtualized environments.
Operating System Virtualization:
When the virtual machine software or virtual machine manager (VMM) is installed on the Host operating system instead of directly on the hardware
system is known as operating system virtualization.
● Operating System virtualization is the type where the division of OS happens. That is the core of the Operating System, which
is referred to as the kernel resources that get shared and allow isolated instances of namespaces to exist with dedicated
Virtualization of the servers hides or masks server resources such as processor, operating system, memory and presents users as
a private virtual server. This kind of virtualization technique is used in
Storage virtualization pools all the storage devices as a single storage device and presents it to the host. So, with this, the storage administrator will
be able to create or design logical storage units in a better way so as to have backup, recovery, archive and application data type of storage by
masking the complexity of the SAN (Storage Area Network).
Storage virtualization combines the functions of physical storage devices such as network attached storage (NAS) and storage area network (SAN).
You can pool the storage hardware in your data center, even if it is from different vendors or of different types. Storage virtualization uses all your
physical data storage and creates a large unit of virtual storage that you can assign and control by using management software. IT administrators
can streamline storage activities, such as archiving, backup, and recovery, because they can combine multiple network storage devices virtually into
a single storage device.
● Any computer network has hardware elements such as switches, routers, and firewalls. An
organization with offices in multiple geographic locations can have several different network
technologies working together to create its enterprise network. Network virtualization is a process
that combines all of these network resources to centralize administrative tasks. Administrators can
adjust and control these elements virtually without touching the physical components, which
greatly simplifies network management.
● The following are two approaches to network virtualization.
● Software-defined networking
● Software-defined networking (SDN) controls traffic routing by taking over routing management
from data routing in the physical environment. For example, you can program your system to
prioritize your video call traffic over application traffic to ensure consistent call quality in all online
meetings.
● Network function virtualization
● Network function virtualization technology combines the functions of network appliances, such as
firewalls, load balancers, and traffic analyzers that work together, to improve network performance.
● Data virtualization
● Modern organizations collect data from several sources and store it in different formats. They might also
store data in different places, such as in a cloud infrastructure and an on-premises data center. Data
virtualization creates a software layer between this data and the applications that need it. Data
virtualization tools process an application’s data request and return results in a suitable format. Thus,
organizations use data virtualization solutions to increase flexibility for data integration and support cross-
functional data analysis.
● Application virtualization
● Application virtualization pulls out the functions of applications to run on operating systems other than the
operating systems for which they were designed. For example, users can run a Microsoft Windows
application on a Linux machine without changing the machine configuration. To achieve application
virtualization, follow these practices:
● Application streaming – Users stream the application from a remote server, so it runs only on the end user's
device when needed.
● Server-based application virtualization – Users can access the remote application from their browser or
client interface without installing it.
● Local application virtualization – The application code is shipped with its own environment to run on all
operating systems without changes.
Xen Hypervisor
Xen is an open source hypervisor program developed by Cambridge University.
Xen is a micro kernel hypervisor, which separates the policy from the mechanism.
The core components of a Xen system are the hypervisor, kernel, and applications.
The organization of the three components is important. Like other virtualization
systems, many guest OSes can run on top of the hypervisor.
Xen is a hypervisor that runs directly on the system hardware. Xen inserts a
virtualization layer between the system hardware and the virtual machines,
turning the system hardware into a pool of logical computing resources that Xen
can dynamically allocate to any guest operating system. The operating systems
running in virtual machines interact with the virtual resources as if they were
physical resources.
Xen is running three virtual machines. Each virtual machine is running a guest
operating system and applications independent of other virtual machines while
sharing the same physical resources.
Xen Architecture
● However, not all guest OSes are created equal. The guest OS, which
has control ability, is called Domain 0, and the others are called
Domain U.
● a) Dom0 / Domain0 / privileged domain / xen-server / host
Dom0 is the first domain started by the Xen hypervisor on boot. It has
special privileges like being able to cause new domains to start or
being able to access the hardware directly. It is responsible for
running all of the device drivers for the hardware. For hardware that
is made available to other domains, like network interfaces and disks,
it will run the BackendDriver, which multiplexes and forwards to the
hardware requests from the FrontendDriver in each DomU.
Although any operating system can be ported to run on Xen as a
DomU, only Linux has been given the tools and kernel patches
necessary to run in Dom0.
● b) DomU / DomainU / unprivileged domain / virtual machine /
guest
A DomU is the counterpart to Dom0; it is an unprivileged domain
with (by default) no access to the hardware. It must run a
FrontendDriver for multiplexed hardware it wishes to share with
other domains. A DomU is started by xend in Dom0, which the user
accesses with the xm command-line tool.
● c) hypervisor / virtual machine monitor
The hypervisor is Xen itself. It is between the hardware and the
operating system of the various domains. The hypervisor is
responsible for checking page tables, allocating resources for new
domains, and scheduling domains. It presents the domains with a
virtual machine that looks similar but not identical to the native
architecture. It is also responsible for booting the machine to start the
Dom0.
The Xen architecture’s special Dom0 (domain 0) and several guest domains
for user applications.
● d) virtual machine environment / virtualization environment
The virtual machine environment puts it all together. The Dom0, the
DomU and the hypervisor make up the virtualization environment.
The whole system is able to run multiple operating systems
simultaneously.
KVM Hypervisor
KVM is currently designed to interface with the kernel via a loadable kernel
module. Operating system versions supported include a wide variety of
guest operating systems like Linux, BSD, Solaris, Windows, Haiku,
ReactOS, and AROS Research Operating System.
[Link]
Binary Translation with Full Virtualization
Based on this approach, any OS can be virtualized with the help of Binary Translation and direct execution-based
technique. In this approach, the Guest OS is placed on a higher ring and the kernel code is translated by the
hypervisor (virtualization software) to have the effect on the virtual hardware on which it is running.
The hypervisor gives virtual machines all the services provided by the hardware such as virtual BIOS, virtual
memory, and access to virtual devices. The user code that typically runs on Ring 3 is directly executed.
● This kind of virtualization delivers the best isolation and security for Virtual Machine.
● Truly isolated numerous guest OS can execute concurrently on the same hardware.
● It is only implementation that needs no hardware assist or operating system assist to virtualize
sensitive instruction as well as privileged instruction.
An alternative VM architecture is to install a virtualization layer on top of the host OS. This host OS
is still responsible for managing the hardware. The guest OSes are installed and run on top of the
virtualization layer. Dedicated applications may run on the VMs. Certainly, some other applications
can also run with the host OS directly. This host-based architecture has some distinct advantages, as
enumerated next. The user can install this VM architecture without modifying the host OS. The
virtualizing software can rely on the host OS to provide device drivers and other low-level services.
This will simplify the VM design and ease its deployment.
Second, the host-based approach appeals to many host machine configurations. Compared to the
hypervisor/VMM architecture, the performance of the host-based architecture may also be low.
When an application requests hardware access, it involves four layers of mapping which
downgrades performance significantly. When the ISA of a guest OS is different from the ISA of the
underlying hardware, binary translation must be adopted. Although the host-based architecture has
flexibility, the performance is too low to be useful in practice.
Para-Virtualization with Compiler Support
● Para-virtualization needs to modify the guest operating systems. A para-virtualized VM
provides special APIs requiring substantial OS modifications in user applications.
Performance degradation is a critical issue of a virtualized system. No one wants to use a
VM if it is much slower than using a physical machine. The virtualization layer can be
inserted at different positions in a machine soft-ware stack. However, para-virtualization
attempts to reduce the virtualization overhead, and thus improve performance by
modifying only the guest OS kernel.
● Figure 3.7 illustrates the concept of a paravirtualized VM architecture. The guest operating
systems are para-virtualized. They are assisted by an intelligent compiler to replace the
nonvirtualizable OS instructions by hypercalls as illustrated in Figure 3.8. The traditional
x86 processor offers four instruction execution rings: Rings 0, 1, 2, and 3. The lower the ring
number, the higher the privilege of instruction being executed. The OS is responsible for
managing the hardware and the privileged instructions to execute at Ring 0, while user- Although para-virtualization reduces the overhead, it has incurred other
problems. First, its compatibility and portability may be in doubt,
level applications run at Ring 3. The best example of para-virtualization is the KVM to be
because it must support the unmodified OS as well. Second, the cost of
described below.
❖ Para-Virtualization Architecture
maintaining para-virtualized OSes is high, because they may require
deep OS kernel modifications. Finally, the performance advantage of
● When the x86 processor is virtualized, a virtualization layer is inserted between the para-virtualization varies greatly due to workload variations. Compared
hardware and the OS. According to the x86 ring definition, the virtualization layer should with full virtualization, para-virtualization is relatively easy and more
practical. The main problem in full virtualization is its low performance
also be installed at Ring 0. Different instructions at Ring 0 may cause some problems. In
in binary translation. To speed up binary translation is difficult.
Figure 3.8, we show that para-virtualization replaces nonvirtualizable instructions with Therefore, many virtualization products employ the para-virtualization
hypercalls that communicate directly with the hypervisor or VMM. However, when the architecture. The popular Xen, KVM, and VMware ESX are good
guest OS kernel is modified for virtualization, it can no longer run on the hardware directly. examples.
● KVM (Kernel-Based VM)
● This is a Linux para-virtualization system—a part of the Linux version 2.6.20 kernel. Memory management and scheduling activities are
carried out by the existing Linux kernel. The KVM does the rest, which makes it simpler than the hypervisor that controls the entire
machine. KVM is a hardware-assisted para-virtualization tool, which improves performance and supports unmodified guest OSes such as
Windows, Linux, Solaris, and other UNIX variants.
Para-Virtualization with Compiler Support
Unlike the full virtualization architecture which intercepts and emulates privileged and sensitive instructions at runtime,
para-virtualization handles these instructions at compile time. The guest OS kernel is modified to replace the privileged
and sensitive instructions with hypercalls to the hypervisor or VMM. Xen assumes such a para-virtualization
architecture. The guest OS running in a guest domain may run at Ring 1 instead of at Ring 0. This implies that the guest
OS may not be able to execute some privileged and sensitive instructions. The privileged instructions are implemented
by hypercalls to the hypervisor. After replacing the instructions with hypercalls, the modified guest OS emulates the
behavior of the original guest OS. On an UNIX system, a system call involves an interrupt or service routine. The
hypercalls apply a dedicated service routine in Xen.
The service console is responsible for booting the system, initiating the execution of the VMM and resource manager, and
relinquishing control to those layers. It also facilitates the process for system administrators. VMware pioneered the
software market for virtualization. The company has developed virtualization tools for desktop systems and servers as
well as virtual infrastructure for large data centers. ESX is a VMM or a hypervisor for bare-metal x86 symmetric
multiprocessing (SMP) servers. It accesses hardware resources such as I/O directly and has complete resource
management control. An ESX-enabled server consists of four components: a virtualization layer, a resource manager,
hardware interface components, and a service console, as shown in Figure 3.9. To improve performance, the ESX server
employs a para-virtualization architecture in which the VM kernel interacts directly with the hardware without involving
the host OS.
The VMM layer virtualizes the physical hardware resources such as CPU, memory, network and disk controllers, and
human interface devices. Every VM has its own set of virtual hardware resources. The resource manager allocates CPU,
memory disk, and network bandwidth and maps them to the virtual hardware resource set of each VM created.
Hardware interface components are the device drivers and the
IMPLEMENTATION LEVELS OF VIRTUALIZATION IN CLOUD COMPUTING
It is not simple to set up virtualization. Your computer runs on an operating system that gets configured on some
particular hardware. It is not feasible or easy to run a different operating system using the same hardware.
To do this, you will need a hypervisor. Now, what is the role of the hypervisor? It is a bridge between the hardware and the
virtual operating system, which allows smooth [Link] of the Implementation levels of virtualization in Cloud
Computing., there are a total of five levels that are commonly used. Let us now look closely at each of these levels of
virtualization implementation in Cloud Computing.
ISA virtualization can work through ISA emulation. This is used to run many legacy codes written for a different hardware
configuration. These codes run on any virtual machine using the ISA. With this, a binary code that originally needed some
additional layers to run is now capable of running on the x86 machines. It can also be tweaked to run on the x64 machine.
With ISA, it is possible to make the virtual machine hardware agnostic.
For the basic emulation, an interpreter is needed, which interprets the source code and then converts it into a hardware
format that can be read. This then allows processing. This is one of the five implementation levels of virtualization in Cloud
Computing.
2) Hardware Abstraction Level (HAL)
True to its name HAL lets the virtualization perform at the level of the hardware. This makes use of a hypervisor which is
used for functioning. The virtual machine is formed at this level, which manages the hardware using the virtualization
process. It allows the virtualization of each of the hardware components, which could be the input-output device, the
memory, the processor, etc.
Multiple users will not be able to use the same hardware and also use multiple virtualization instances at the very same
time. This is mostly used in the cloud-based infrastructure.
At the level of the operating system, the virtualization model is capable of creating a layer that is abstract between the
operating system and the application. This is an isolated container on the operating system and the physical server, which
uses the software and hardware. Each of these then functions in the form of a server.
When there are several users and no one wants to share the hardware, then this is where the virtualization level is used.
Every user will get his virtual environment using a dedicated virtual hardware resource. In this way, there is no question of
any conflict
4) Library Level
The operating system is cumbersome, and this is when the applications use the API from the libraries at a user level. These
APIs are documented well, and this is why the library virtualization level is preferred in these scenarios. API hooks make it
possible as it controls the link of communication from the application to the system.
5) Application Level
The application-level virtualization is used when there is a desire to virtualize only one application and is the last of the
implementation levels of virtualization in Cloud Computing. One does not need to virtualize the entire environment of the
platform.
This is generally used when you run virtual machines that use high-level languages. The application will sit above the
virtualization layer, which in turn sits on the application program.
It lets the high-level language programs compiled to be used at the application level of the virtual machine run seamlessly.
Realtime Salesforce Cloud Computing Services- IaaS, Paas,
SaaS
Insights about Cloud Computing Architecture
A complete cloud computing architecture design is also a step-by-step process that begins with collecting
requirements and analysis, designing the architecture based on the requirements analysis, evaluating
improvements and delivering implementation, and then achieving continuous operations.
To proceed with architecture design based on Cloud Computing, all technical solutions should follow certain
principles, which is the target to be hit in architecture design.
There are 6 principles of cloud computing architecture design, including reasonable deployment, business
continuity, elastic expansion, performance efficiency, security compliance, and continuous operation.
Principle 1: Reasonable Deployment
● The deployment of business systems on the public cloud includes the cloud hosts in the form of
virtual machines and physical cloud hosts with higher performance. Hosting services include
hosted applications and hosted physical servers.
● The cloud computing operating system is extracted and packaged as independent software and
services to be deployed in the user's private environment. Unlike public clouds, which are available
to "any" user, private deployments are only available to a select few users.
● Hybrid architecture enables unified management and scheduling of resources for public cloud
and privatized deployed platforms, traditional VMware, OpenStack virtualization platforms or
physical servers.
Principle 2: Business Continuity
Business continuity mainly refers to the 3 aspects of high availability, continuous operations, and
disaster recovery and the design pattern is developed according to this logic.
● High Availability refers to avoiding business interruption by redundancy and other designs when
the resources running the business fail.
● Continuous Operations mean that the resources for business operation are fault-free and the
business can continuously provide services.
● Disaster Recovery refers to the ability to restore applications and data in different environments
when the business operating environment is damaged.
Principle 3: Elastic Expansion
● Tightly coupled systems are not easy to expand, and it is difficult to troubleshoot problems when
software bugs and system failures occur.
● To maintain the elastic expansion of the system, the first step is to decouple the system components,
including the decoupling of dynamic data and static data.
Component decoupling is a prerequisite for achieving expandability and can be done in the following ways.
On the one hand, security compliance is to meet the business security protection of their own
needs, on the other hand, it is to meet the security supervision [Link] the specific
implementation, these two aspects will be crossed together.
● Set up master accounts and sub-accounts in the account system, and manage public keys
and private keys separately; Set appropriate roles and assign the minimum permissions
required to accounts and roles.
● Controlling network access through ACLs; Restrict open ports on cloud hosts through
security groups; Control communication across subnets through subnetting and routing.
Configure the database and the cloud hosts that only need internal access to the intranet
VPCs, set the VPCs that are allowed to access, and set them to not connect to the extranet.
● Prevent DDoS, cc, SQL injection, XSS and other attacks.
● Security audit; Keep access logs and operation logs; Gradually realize low-frequency storage
and archive storage, etc.
Principle 6: Continuous Operation
● Cloud resources, cloud services, events and users' applications will be monitored in continuous
operation, and alarms will be set.
● When alarm conditions are reached, relevant personnel will be notified by phone, SMS, email,
WeChat, etc.
● Alarms will be handed over to callback functions, which can realize automated fault handling or
corresponding contingency plans and reduce manual intervention.
● In addition, it needs to have automatic response and processing functions. Automatic scaling can
automatically expand or shrink the number of cloud hosts by monitoring indicators such as CPU.
● Detect changes in consumption and business costs in a timely manner and optimize costs. Set
alarm values for account balances to avoid rapid spending and achieve cost control.
High-performance computing
High performance computing (HPC) is the ability to process data and perform complex calculations at high speeds. To put it
into perspective, a laptop or desktop with a 3 GHz processor can perform around 3 billion calculations per second. While that
is much faster than any human can achieve, it pales in comparison to HPC solutions that can perform quadrillions of
calculations per second.
One of the best-known types of HPC solutions is the supercomputer. A supercomputer contains thousands of
compute nodes that work together to complete one or more tasks. This is called parallel processing. It’s similar to
having thousands of PCs networked together, combining compute power to complete tasks faster.
HPC solutions have three main components
● Compute
● Network
● Storage
To build a high performance computing architecture, compute servers are networked together into a cluster.
Software programs and algorithms are run simultaneously on the servers in the cluster. The cluster is networked
to the data storage to capture the output. Together, these components operate seamlessly to complete a diverse set
of tasks.
For example, the storage component must be able to feed and ingest data to and from the compute servers as
quickly as it is processed. Likewise, the networking components must be able to support the high-speed
transportation of data between compute servers and the data storage. If one component cannot keep up with the
rest, the performance of the entire HPC infrastructure suffers.
HPC cluster
An HPC cluster consists of hundreds or thousands of compute servers that are networked together. Each server is
called a node. The nodes in each cluster work in parallel with each other, boosting processing speed to deliver
high performance computing.
HPC use cases
Deployed on premises, at the edge, or in the cloud, HPC solutions are used for a variety of purposes across multiple industries.
Examples include:
● Research labs: HPC is used to help scientists find sources of renewable energy, understand the evolution of our universe,
predict and track storms, and create new materials.
● Media and entertainment: HPC is used to edit feature films, render mind-blowing special effects, and stream live events
around the world.
● Oil and gas: HPC is used to more accurately identify where to drill for new wells and to help boost production from existing
wells.
● Artificial intelligence and machine learning: HPC is used to detect credit card fraud, provide self-guided technical support,
teach self-driving vehicles, and improve cancer screening techniques.
● Financial services: HPC is used to track real-time stock trends and automate trading.
● HPC is used to design new products, simulate test scenarios, and make sure that parts are kept in stock so that production
lines aren’t held up.
● HPC is used to help develop cures for diseases like diabetes and cancer and to enable faster, more accurate patient diagnosis.
Utility and Enterprise Grid computing
Utility Computing
Virtually any activity performed in a data center can be replicated in a utility computing offering. Services available include
the following:
Mainly, grid computing is used in the ATMs, back-end infrastructures, and marketing research.
● Grid computing works by running specialized software on every computer that participates in the data grid.
● The software acts as the manager of the entire system and coordinates various tasks across the grid.
● Specifically, the software assigns subtasks to each computer so they can work simultaneously on their respective
subtasks.
● After the completion of subtasks, the outputs are gathered and aggregated to complete a larger-scale task.
● The software lets each computer communicate over the network with the other computers so they can share
information on what portion of the subtasks each computer is running, and how to consolidate and deliver outputs.
Benefits of Cloud Environments