Cloud Computing Notes
Cloud Computing Notes
T h e a rc h it e c tu r e o f c lo u d m u st b e lo o se ly c o u p le d .
Unit-I CCS335-Cloud
It m u st u s e c lu s te r a r c h ite c tu re fo r g e tt in g th e s ys te m sc a la b ility .
The rapid development in multicore CPUs, memory chips, and disk arrays in the hardware
field has made it possible to create data centers with large volumes of storage space
instantly. While development in software standards like web 2.0 and SOA have immensely
helped to developed a cloud services.
The Service Oriented Architecture (SOA) is also a crucial component which is used in the
delivery of SaaS.
The web service software detects the status of the joining and leaving of each node server
and performs appropriate tasks accordingly. The virtualization of infrastructure allows
for quick cloud delivery and recovery from disasters. In recent cloud platforms, resources
are built into the data centers which are typically owned and operated by a third - party
provider.
The layered architecture of a cloud is composed of three basic layers called infrastructure,
platform and application. These three levels of architecture are implemented with
virtualization and standardization of cloud - provided hardware and software resources. This
architectural design facilitates public, private and hybrid cloud services that are conveyed to
users through networking support over the internet and the intranets.
The infrastructure layer consists of virtualized services for computing, storage and
networking. It is responsible for provisioning infrastructure components like compute
(CPU and memory), storage, network and IO resources to run virtual machines or
virtual servers along with virtual storages.
The abstraction of these hardware resources is intended to provide the flexibility to
the users. Internally, virtualization performs automated resource provisioning and
optimizes the process of managing resources.
The infrastructure layer act as a foundation for building the second layer called platform
layer for supporting PaaS services.
The platform layer is responsible for providing readily available development and
deployment platform for web applications to the cloud users without needing them to
install
Unit-I CCS335-Cloud
in a local device. This layer provides an environment for users to create their applications,
test operation flows, track the performance and monitor execution results.
The platform must be ensuring to provide scalability, reliability and security. In this layer,
virtualized cloud platform, acts as an "application middleware" between the cloud
infrastructure and application layer of cloud. The platform layer is the foundation for
application layer.
A collection of all software modules required for SaaS applications forms the application
layer. This layer is mainly responsible for making on demand application delivery.
In this layer, software applications include day-to-day office management software’s used
for information collection, document processing, calendar and authentication.
Enterprises also use the application layer extensively in business marketing, sales,
Customer Relationship Management (CRM), financial transactions and Supply Chain
Management (SCM). It is important to remember that not all cloud services are limited to a
single layer.
Many applications can require mixed - layers resources. After all, with a relation of
dependency, the three layers are constructed from the bottom-up approach. From the
perspective of the user, the services at various levels need specific amounts of vendor
support and resource management for functionality.
In general, SaaS needs the provider to do much more work, PaaS is in the middle and IaaS
requests the least. The best example of application layer is the [Link]'s CRM
service where not only the hardware at the bottom layer and the software at the top layer is
supplied by the vendor, but also the platform and software tools for user application
development and monitoring.
Unit-I CCS335-Cloud
With today’s networking technology, a few LAN switches can easily connect
hundreds of machines as a working cluster. A WAN can connect many local clusters
to form a very large cluster of clusters. Massive systems are considered highly
scalable, and can reach web-scale connectivity, either physically or logically.
Single-System Image :
Cluster designers desire a cluster operating system or some middle-ware to support SSI at
various levels, including the sharing of CPUs, memory, and I/O across all cluster nodes. An SSI
is an illusion created by software or hardware that presents a collection of resources as one
integrated, powerful resource. SSI makes the cluster appear like a single machine to the user.
Unit-I CCS335-Cloud
In the past 30 years, users have experienced a natural growth path from Internet to web
and grid computing services. Internet services such as the Telnet command enables a local
computer to connect to a remote computer. A web service such as HTTP enables remote
access of remote web pages. Grid computing is envisioned to allow close interaction among
applications running on distant computers simultaneously. Forbes Magazine has projected the
global growth of the IT-based economy from $1 trillion in 2001 to $20 trillion by 2015. The
evolution from Internet to web and grid services is certainly playing a major role in this growth.
Computational Grids
Like an electric utility power grid, a computing grid offers an infrastructure that couples
computers, software/middleware, special instruments, and people and sensors together. The
grid is often con-structed across LAN, WAN, or Internet backbone networks at a regional,
national, or global scale. Enterprises or organizations present grids as integrated computing
resources. They can also be viewed as virtual platforms to support virtual organizations. The
computers used in a grid are primarily workstations, servers, clusters, and supercomputers.
Personal computers, laptops, and PDAs can be used as access devices to a grid system.
In Figure 1.16 shows an example computational grid built over multiple resource sites
owned by different organizations. The resource sites offer complementary computing
resources, including workstations, large servers, a mesh of processors, and Linux clusters to
satisfy a chain of computational needs. The grid is built across various IP broadband networks
including LANs and WANs already used by enterprises or organizations over the Internet. The
grid is presented to users as an integrated resource pool as shown in the upper half of the
figure.
Unit-I CCS335-Cloud
Grid Families
Grid technology demands new distributed computing models, software/middleware
support, network protocols, and hardware infrastructures. National grid projects are followed by
industrial grid plat-form development by IBM, Microsoft, Sun, HP, Dell, Cisco, EMC, Platform
Computing, and others. New grid service providers (GSPs) and new grid applications have
emerged rapidly, similar to the growth of Internet and web services in the past two decades.
In Table 1.4, grid systems are classified in essentially two categories: computational or
data grids and P2P grids.
machines act autonomously to join or leave the system freely. This implies that no
master-slave relationship exists among the peers. No central coordination or central database
is needed. In other words, no peer machine has a global view of the entire P2P system. The
system is self- organizing with distributed control.
Figure 1.17 shows the architecture of a P2P network at two abstraction levels. Initially, the
peers are totally unrelated. Each peer machine joins or leaves the P2P network voluntarily. Only
the participating peers form the physical network at any time. Unlike the cluster or grid, a P2P
network does not use a dedicated interconnection network. The physical network is simply an
ad hoc network formed at various Internet domains randomly using the TCP/IP and NAI
protocols. Thus, the physical network varies in size and topology dynamically due to the free
membership in the P2P network.
Overlay Networks
Data items or files are distributed in the participating peers. Based on communication
or file-sharing needs, the peer IDs form an overlay network at the logical level. This overlay is a
virtual network
formed by mapping each physical machine with its ID, logically, through a virtual mapping as
shown in Figure 1.17. When a new peer joins the system, its peer ID is added as a node in the
overlay network. When an existing peer leaves the system, its peer ID is removed from the
overlay network automatically. Therefore, it is the P2P overlay network that characterizes the
logical connectivity among the peers.
There are two types of overlay networks: unstructured and structured. An unstructured
overlay network is characterized by a random graph. There is no fixed route to send messages
or files among the nodes. Often, flooding is applied to send a query to all nodes in an
unstructured overlay, thus resulting in heavy network traffic and nondeterministic search
results. Structured overlay net-works follow certain connectivity topology and rules for
inserting and removing
Unit-I CCS335-Cloud
nodes (peer IDs) from the overlay graph. Routing mechanisms are developed to take
advantage of the structured overlays.
P2P Application Families
Based on application, P2P networks are classified into four groups, as shown in Table
1.5. The first family is for distributed file sharing of digital contents (music, videos, etc.) on the
P2P network. This includes many popular P2P networks such as Gnutella, Napster, and
BitTorrent, among others. Collaboration P2P networks include MSN or Skype chatting, instant
messaging, and collaborative design, among others.
P2P Computing Challenges
P2P computing faces three types of heterogeneity problems in hardware, software, and
network requirements. There are too many hardware models and architectures to select from;
incompatibility exists between software and the OS; and different network connections and
protocols
make it too complex to apply in real applications. We need system scalability as the workload
increases. System scaling is directly related to performance and bandwidth. P2P networks do
have these properties. Data location is also important to affect collective performance. Data
locality, network proximity, and interoperability are three design objectives in distributed P2P
applications.
The reference architecture model given by the National Institute of Standards and
Technology (NIST). The model offers approaches for secure cloud adoption while
contributing to cloud computing guidelines and standards.
The NIST team works closely with leading IT vendors, developers of standards, industries
and other governmental agencies and industries at a global level to support effective cloud
computing security standards and their further development. It is important to note that
this NIST cloud reference architecture does not belong to any specific vendor products,
services or some reference implementation, nor does it prevent further innovation in cloud
technology.
Cloud consumer
Cloud provider
Cloud auditor
Cloud broker
Cloud carrier
Unit-I CCS335-Cloud
Now, understand that a cloud consumer can request cloud services directly from a
CSP or from a cloud broker. The cloud auditor independently audits and then contacts
other actors to gather information. We will now discuss the role of each actor in detail.
Cloud Consumer
A cloud consumer is the most important stakeholder. The cloud service is built to
support a cloud consumer. The cloud consumer uses the services from a CSP or person or
asks an organization that maintains a business relationship. The consumer then verifies the
service catalogue from the cloud provider and requests an appropriate service or sets up
service contracts for using the service. The cloud consumer is billed for the service
used.
Example 1 : Cloud consumer requests the service from the broker instead of directly
contacting the CSP. The cloud broker can then create a new service by combining
multiple services or by enhancing an existing service. Here, the actual cloud provider is not
visible to the cloud consumer. The consumer only interacts with the broker. This is
illustrated.
Unit-I CCS335-Cloud
Example 2 : In this scenario, the cloud carrier provides for connectivity and transports
cloud services to consumers. This is illustrated in Fig. 1.5.
In Fig. 1.2.4, the cloud provider participates by arranging two SLAs. One SLA is with the
cloud provider (SLA2) and the second SLA is with the consumer (SLA1). Here, the cloud
provider will have an arrangement (SLA) with the cloud carrier to have secured, encrypted
connections. This ensures that the services are available for the consumer at a consistent
level to fulfil service requests. Here, the provider can specify the requirements, such as
flexibility, capability and functionalities in SLA2 to fulfil essential service requirements in
SLA1.
Example 3 : In this usage scenario, the cloud auditor conducts independent evaluations
for a cloud service. The evaluations will relate to operations and security of cloud service
implementation. Here the cloud auditor interacts with both the cloud provider and consumer,
as shown in Fig. 1.6.
In all the given scenarios, the cloud consumer plays the most important role. Based on
the service request, the activities of other players and usage scenarios can differ for other
cloud consumers. Fig. 1.7 shows an example of available cloud services types.
In Fig. 1.7 note that SaaS applications are available over a network to all consumers.
These consumers may be organisations with access to software applications, end users,
app developers or administrators. Billing is based on the number of end users, the time of
use, network bandwidth consumed and for the amount or volume of data stored.
PaaS consumers can utilize tools, execution resources, development IDEs made
available by cloud providers. Using these resources, they can test, develop, manage, deploy
and configure many applications that are hosted on a cloud. PaaS consumers are billed
based on processing, database, storage, network resources consumed and for the duration
of the platform used.
Unit-I CCS335-Cloud
On the other hand, IaaS consumers can access virtual computers, network - attached
storage, network components, processor resources and other computing resources that are
deployed and run arbitrary software. IaaS consumers are billed based on the amount and
duration of hardware resources consumed, number of IP addresses, volume of data stored,
network bandwidth, and CPU hours used for a certain duration.
Cloud Provider
Cloud provider is an entity that offers cloud services to interested parties. A cloud
provider manages the infrastructure needed for providing cloud services. The CSP also runs
the software to provide services and organizes the service delivery to cloud consumers
through networks.
SaaS providers then deploy, configure, maintain and update all operations of the
software application on the cloud infrastructure, in order to ensure that services are
provisioned and to fulfil cloud consumer service requests. SaaS providers assume most of
the responsibilities associated with managing and controlling applications deployed on the
infrastructure. On the other hand, SaaS consumers have no or limited administrative
controls.
PaaS cloud providers manage the computing infrastructure and ensure that the
platform runs the cloud software and implements databases, appropriate runtime software
execution stack and other required middleware elements. They support development,
deployment and the management of PaaS consumers by providing them with necessary
tools such as IDEs, SDKs and others. PaaS providers have complete control of
applications, settings of the hosting environment, but have lesser control over the
infrastructure lying under the platform, network, servers, OS and storage.
Now, the IaaS CSP aggregates physical cloud resources such as networks, servers,
storage and network hosting infrastructure. The provider operates the cloud software and
makes all compute resources available to IaaS cloud consumer via a set of service interfaces,
such as VMs and virtual network interfaces. The IaaS cloud provider will have control over
the physical hardware and cloud software to enable provisioning and possible
infrastructure services.
Unit-I CCS335-Cloud
Security: Security, which is a critical function in cloud computing, spans all layers in
the reference architecture. Security must be enforced end-to-end. It has a wide range
from physical to application security. CSPs must take care of security.
Privacy: Privacy in cloud must be ensured at different levels, such as user privacy,
data privacy, authorization and authentication and it must also have adequate
assurance levels. Since clouds allow resources to be shared, privacy challenges are a
big concern for consumers using clouds.
Cloud Auditor
The cloud auditor performs the task of independently evaluating cloud service
controls to provide an honest opinion when requested. Cloud audits are done to validate
standards conformance by reviewing the objective evidence. The auditor will examine
services provided by the cloud provider for its security controls, privacy, performance,
and so on.
Unit-I CCS335-Cloud
Cloud Broker
The cloud broker collects service requests from cloud consumers and manages the use,
performance, and delivery of cloud services. The cloud broker will also negotiate and
manage the relationship between cloud providers and consumers. A cloud broker may
provide services that fall into one of the following categories :
Service intermediation : Here the cloud broker will improve some specific
capabilities, and provide value added services to cloud consumers.
Service aggregation : The cloud broker links and integrates different services into
one or more new services.
Service Arbitrage : This is similar to aggregation, except for the fact that
services that are aggregated are not fixed. In service arbitrage, the broker has the
liberty to choose services from different agencies.
Cloud Carrier
The cloud carrier tries to establish connectivity and transports cloud services between a
cloud consumer and a cloud provider. Cloud carriers offer network access for
consumers, by providing telecommunication links for accessing resources using other
devices (laptops, computers, tablets, smartphones, etc.). Usually, a transport agent is an
entity offering telecommunication carriers to a business organization to access resources.
The cloud provider will set up SLAs with cloud carrier to ensure carrier transport is
consistent with the level of SLA provided by the consumers. Cloud carriers provide secure
and dedicated high - speed links with cloud providers and between different cloud
Entities.
Unit-I CCS335-Cloud
Unit-I CCS335-Cloud
Public Cloud
The public cloud services are runs over the internet. Therefore, the users who want cloud
services have to have internet connection in their local device like thin client, thick client,
mobile, laptop or desktop etc. The public cloud services are managed and maintained by
the Cloud Service Providers (CSPs) or the Cloud Service Brokers (CSBs). The public cloud
services are often offered on utility base pricing like subscription or pay- per-use model. The
public cloud services are provided through internet and APIs. This model allows users to
easily access the services without purchasing any specialize hardware or software. Any
device which has web browser and internet connectivity can be a public cloud client. The
popular public cloud service providers are Amazon web services, Microsoft azure and
Google app engine, Salesforce etc.
A user gets easy access to multiple services under a single self - service portal.
It is cheaper than in house cloud implementation because user have to pay for that
they have used.
There is lack of data security as data is stored on public data center and managed by
third party data center vendors therefore there may be compromise of user’s
confidential data.
User never comes to know where (at which location) their data gets stored, how that
can be recovered and how many replicas of data have been created.
Private Cloud
The private cloud services are used by the organizations internally. Most of the times it
run over the intranet connection. They are designed for a single organization therefore
anyone within the organization can get access to data, services and web applications easily
through local servers and local network but users outside the organizations cannot access
them. This type of cloud services are hosted on intranet therefore users who are connected to
that intranet get access to the services. The infrastructure for private cloud is fully managed
and maintained by the organization itself.
It is much more secure than public cloud as it gives freedom to local administrators to
write their own security policies for user’s access. It also provides good level trust and
privacy to the users. Private clouds are more expensive than public clouds due to the capital
expenditure involved in acquiring and maintaining them. The well-known private cloud
platforms are Openstack, Open nebula, Eucalyptus, VMware private cloud etc.
Advantages of private cloud
Speed of access is very high as services are provided through local servers
over local network.
It is more secure than public cloud as security of cloud services are handled by
local administrator.
Hybrid Cloud
The hybrid cloud services are composed of two or more clouds that offers the benefits of
Comparison between various Cloud Deployment Models
Cloud service models
FromFig. 1.10, we can see that the Infrastructure as a Service (IaaS) is the bottommost
layer in the model and Software as a Service (SaaS) lies at the top.
The IaaS has lower level of abstraction and visibility, while SaaS has highest level
of visibility.
The Fig. 1.11 represents the cloud stack organization from physical infrastructure to
applications.
In this layered architecture, the abstraction levels are seen where higher layer services
include the services of the underlying layer.
The three services, IaaS, PaaS and SaaS, can exist independent of one another or may
combine with one another at some layers. Different layers in every cloud
computing model are either managed by the user or by the vendor (provider).
In case of the traditional IT model, all the layers or levels are managed by the user
because he or she is solely responsible for managing and hosting the applications.
In case of IaaS, the top five layers are managed by the user, while the four lower layers
(virtualisation, server hardware, storage and networking) are managed by vendors or
providers. So, here, the user will be accountable for managing the operating system via
applications and managing databases and security of applications.
The core middleware manages the physical resources and the VMs are deployed on
top of them. This deployment will provide the features of pay-per-use services and
multi-tenancy. Infrastructure services support cloud development environments and provide
capabilities for application development and implementation.
It provides different libraries, models for programming, APIs, editors and so on to support
application development. When this deployment is ready for the cloud, they can be
used by end-users/ organisations. With this idea, let us further explore the different service
models. Infrastructure as a Service (IaaS)
Developers use the IaaS service model to create virtual hardware on which
the applications and/ or services are developed.
Developers can create virtual private storage, virtual private servers, and virtual
private networks by using IaaS.
The private virtual systems contain software applications to complete the IaaS
solution. The infrastructure of IaaS consists of communication networks,
physical compute nodes, storage solutions and the pool of virtualized computing
resources managed by a service provider.
IaaS provides users with a web-based service that can be used to create, destroy
and manage virtual machines and storage.
The user reserves an equivalent machine required to run workloads. The IaaS
infrastructure runs the instances of the server in the data centre offering the
service.
The resources for this server instance are drawn from a mix of virtualised systems,
RAID disks, network and interface capacity. These are physical systems partitioned into
logical
The client in IaaS is allocated with its own private network. For example, Amazon EC2
enables this service to behave such that each server has its own separate network unless
the user creates a virtual private cloud. If the EC2 deployment is scaled by adding additional
networks on the infrastructure, it is easy to logically scale, but this can create an
overhead as traffic gets routed between logical networks.
In IaaS, the customer has controls over the OS, storage and installed applications, but has
limited control over network components. The user cannot control the underlying cloud
infrastructure. Services offered by Iaa S include web servers, server hosting,
computer hardware, OS, virtual instances, load balancing, web servers and bandwidth
provisioning. These services are useful during volatile demands and when there is a
computing resource need for a new business launch or when the company may not want to
buy hardware or if the organisation wants to expand.
Platform as a Service
The PaaS realizes many of the unique benefits like utility computing, hardware
virtualization, dynamic resource allocation, low investment costs and pre-
configured development environment. It has all the application typically required
by the client deployed on it. Some key providers of PaaS clouds are Google App
Engine, Microsoft Azure, NetSuite, Red hat Open shift etc.
The PaaS model includes the software environment where the developer can
create custom solutions using development tools available with the PaaS
platform. The components of a PaaS platform are shown in Fig. 1.13. Platforms
can support specific development languages, frameworks for applications and
other constructs. Also, PaaS provides tools and development environments to
design applications. Usually, a fully Integrated
Development Environment (IDE) is available as a PaaS service. For PaaS to
be a cloud computing service, the platform supports user interface development.
It also has many standards such as HTML, JavaScript, rich media and so on.
In this model, users interact with the software and append and retrieve data,
perform an action, obtain results from a process task and perform other actions
allowed by the PaaS vendor.
In this service model, the customer does not own any responsibility to maintain
the hardware and software and the development environment.
The applications created are the only interactions between the customer and the
PaaS platform. The PaaS cloud provider owns responsibility for all the
operational aspects, such as maintenance, updates, management of resources
and product lifecycle.
Components of PaaS
A PaaS customer can control services such as device integration, session management,
content management, sandbox, and so on. In addition to these services, customer controls
are also possible in Universal Description Discovery and Integration (UDDI), and platform
independent Extensible Mark-up Language (XML) registry that allows registration and
identification of web service apps.
The platform allows developers to program apps using Google’s published APIs. In this
platform, Google defines the tools to be used within the development framework, the file
system structure and data stores. A similar PaaS offering is given by [Link], another
vendor that is based on the [Link] development platform for the latter’s SaaS
[Link] provides an add - on development environment.
In PaaS, note that developers can build an app with Python and Google API. Here, the
PaaS vendor is the developer who offers a complete solution to the user.
UNIT-2 Virtualization Basics
UNITII – VIRTUALIZATION BASICS
Virtual Machine
The concept of a virtual machine was introduced around 1960. It is the evolution of the time-
sharing technique. In the time-sharing method, each program has full access to all the computer
resources but at a time, only one program will be executed. The system switch between programs
in time slices while saving and restoring program states each time. With the use of the time-sharing
method, multiple users can use the computer system concurrently. IBM research centres evolved
the time-sharing method as Virtual Machines. CP-67 was the first available virtual machine
architecture. Systems with multiple Virtual Machines on a single host and single virtual machine on
multiple hosts were developed.
Before launching any new hardware technology, it is first tested on the emulator to detect, recreate
and repair the flaws in the design & tack necessary steps. Similarly, before introducing any new
software, it is simulated to check for any errors and debug them. To do this task, a system that can
act as a substitute for the main environment to build new technology. This is where Virtual
Machines come into the picture. It acts as the emulation of the computer system providing the full
functionality of the physical system.
With the introduction of new technologies and newer research models, a lot number of hardware
and software products are being launched. Many of the software are platform-dependent hence it is
sometimes difficult to debug or check them because of the limited hardware resources.
A VM (virtual machine) is an emulation of a computer system, where these machines use computer
architectures to provide the functionality of a physical computer. The physical device on which
virtual machines work is known as Host, whereas the virtual machines are known as Guest. A single
host can have multiple numbers of guests.
Virtualization
Virtualization is a proven software technology that makes it possible to run multiple operating
systems and applications on the same server at the same time. Example: Run both Windows and
Linux on the same machine
It is the creation of a virtual (rather than actual) version of something, such as an operating system,
a server, a storage device or network resources.
These types of VMs provide full virtualization. Acting as the substitute for the real machine, these
will provide functionalities to execute an entire operating system. Hardware resources are shared
and managed, forming multiple environments on the host system. These environments are isolated
from each other but exist on the same physical host. Thus, these provide time-sharing among
several single-tasking operating systems.
To allow memory sharing between different virtual machines on one computer operating system,
memory overcommitment systems can be applied. Memory pages having identical content can be
shared among multiple virtual machines present on the same physical host. This is highly useful for
read-only pages.
These types of virtual machines gives us complete system platform and gives the execution of
the complete virtual operating system. Just like virtual box, system virtual machine is providing
an environment for an OS to be installed completely. We can see in below image that our
hardware of Real Machine is being distributed between two simulated operating systems by
Virtual machine monitor. And then some programs, processes are going on in that distributed
hardware of simulated machines separately.
2. Process Virtual Machine :
These VMs are also known as Application virtual machines, Managed runtime environments. This
type of VM runs as a normal application inside the host’s operating system, supporting a single
process. It is created with the starting of the process and is destroyed when the process ends. It is
used to provide a platform-independent programming environment to the process, allowing it to
execute in the same manner on any of the other platforms.
These are implemented using interpreters and provides high-level abstractions. These are popularly
used for Java programming which uses Java virtual machine for execution of programs. There is a
special case of a process VM that abstracts over the communication mechanism of a computer
cluster. These contain one process per physical machine in the cluster. These help the programmer
to focus on the algorithm instead of the communication process provided by the interconnect
and virtual machine in OS. The application running on these VM has access to all the operating
system services. Parallel virtual machine, Message passing interface are examples of these virtual
machines(VM).
While process virtual machines, unlike system virtual machine, does not provide us with the facility
to install the virtual operating system completely. Rather it creates virtual environment of that OS
while using some app or program and this environment will be destroyed as soon as we exit from
that app. Like in below image, there are some apps running on main OS as well some virtual
machines are created to run other apps. This shows that as those programs required different OS,
process virtual machine provided them with that for the time being those programs are running.
Example – Wine software in Linux helps to run Windows applications.
Hypervisor
A hypervisor, also known as a virtual machine monitor or VMM. The hypervisor is a piece of
software that allows us to build and run virtual machines which are abbreviated as VMs.
A hypervisor allows a single host computer to support multiple virtual machines (VMs) by sharing
resources including memory and processing.
Hypervisors allow the use of more of a system's available resources and provide greater IT
versatility because the guest VMs are independent of the host hardware which is one of the major
benefits of the Hypervisor.
In other words, this implies that they can be quickly switched between servers. Since a hypervisor
with the help of its special feature, it allows several virtual machines to operate on a single physical
server. So, it helps us to reduce:
There are two types of hypervisors: "Type 1" (also known as "bare metal") and "Type 2" (also known
as "hosted"). A type 1 hypervisor functions as a light operating system that operates directly on the
host's hardware, while a type 2 hypervisor functions as a software layer on top of an operating
system, similar to other computer programs.
Since they are isolated from the attack-prone operating system, bare-metal hypervisors are
extremely stable.
Furthermore, they are usually faster and more powerful than hosted hypervisors. For these purposes,
the majority of enterprise businesses opt for bare-metal hypervisors for their data center computing
requirements.
While hosted hypervisors run inside the OS, they can be topped with additional (and different)
operating systems.
The hosted hypervisors have longer latency than bare-metal hypervisors which is a very major
disadvantage of the it. This is due to the fact that contact between the hardware and the hypervisor
must go through the OS's extra layer.
The native or bare metal hypervisor, the Type 1 hypervisor is known by both names.
It replaces the host operating system, and the hypervisor schedules VM services directly to the
hardware.
The type 1 hypervisor is very much commonly used in the enterprise data center or other server-
based environments.
It includes KVM, Microsoft Hyper-V, and VMware vSphere. If we are running the updated version of
the hypervisor then we must have already got the KVM integrated into the Linux kernel in 2007.
It is also known as a hosted hypervisor, The type 2 hypervisor is a software layer or framework that
runs on a traditional operating system.
It operates by separating the guest and host operating systems. The host operating system
schedules VM services, which are then executed on the hardware.
Individual users who wish to operate multiple operating systems on a personal computer should use
a form 2 hypervisor.
This type of hypervisor also includes the virtual machines with it.
Hardware acceleration technology improves the processing speed of both bare-metal and hosted
hypervisors, allowing them to build and handle virtual resources more quickly.
On a single physical computer, all types of hypervisors will operate multiple virtual servers for
multiple tenants. Different businesses rent data space on various virtual servers from public cloud
service providers. One server can host multiple virtual servers, each of which is running different
workloads for different businesses.
What is a cloud hypervisor?
Hypervisors are a key component of the technology that enables cloud computing since they are a
software layer that allows one host device to support several virtual machines at the same time.
Hypervisors allow IT to retain control over a cloud environment's infrastructure, processes, and
sensitive data while making cloud-based applications accessible to users in a virtual environment.
A hypervisor also helps in the rapid migration of applications to the cloud as being a part of a
virtualization platform.
As a result, businesses will take advantage of the cloud's many advantages, such as lower hardware
costs, improved accessibility, and increased scalability, for a quicker return on investment.
Benefits of hypervisors
o Speed: The hypervisors allow virtual machines to be built instantly unlike bare-metal
servers. This makes provisioning resources for complex workloads much simpler.
o Efficiency: Hypervisors that run multiple virtual machines on the resources of a single
physical machine often allow for more effective use of a single physical server.
o Flexibility: Since the hypervisor distinguishes the OS from the underlying hardware,
the program no longer relies on particular hardware devices or drivers, bare-metal
hypervisors enable operating systems and their related applications to operate on a
variety of hardware types.
o Portability: Multiple operating systems can run on the same physical server thanks to
hypervisors (host machine). The hypervisor's virtual machines are portable because
they are separate from the physical computer.
As an application requires more computing power, virtualization software allows it to access
additional machines without interruption.
VIRTUALIZATION
• It can also include making multiple physical resources (such as storage devices or
servers) appear as a single virtual resource.
• In computing, virtualization refers to the act of creating a virtual (rather than
actual) version of something, like computer hardware platforms, operating systems,
storage devices, and computer network resources
Machine Manager.
1. Reduced Costs.
5. Increase Availability
6. Save energy
Disadvantages of Virtualization:
1. Extra Costs.
2. Software Licensing.
IMPLEMENTATION LEVELS OF VIRTUALIZATION
The idea is to separate the hardware from the software to yield better system efficiency. For
example, computer users gained access to much enlarged memory space when the concept of
virtual memory was introduced. Similarly, virtualization techniques can be applied to enhance the
use of compute engines, networks and storage.
Levels of Virtualization:
A traditional computer runs with host operating system specially tailored for its hardware
architecture, as shown in Figure 2.11 (a). After virtualization, different user applications managed
by their own operating systems (guest OS) can run on the same hardware, independent of the host
OS.
This is often done by adding additional software, called a virtualization layer as shown in
Figure 2.11 (b). This virtualization layer is known as hypervisor or virtual machine monitor (VMM) .
The VMs are shown in the upper boxes, where applications run with their own guest OS over the
virtualized CPU, memory, and I/O resources. The main function of the software layer for
virtualization is to virtualize the physical hardware of a host machine into virtual resources to be
used by the VMs, exclusively. The virtualization software creates the abstraction of VMs by
interposing a virtualization layer at various levels of a computer system. Common virtualization
layers include the instruction set architecture (ISA) level, hardware level, operating system level,
library support level, and application level.
At the ISA level, virtualization is performed by emulating a given ISA by the ISA of the host
machine. For example, MIPS binary code can run on an x86-based host machine with the help of
ISA emulation. With this approach, it is possible to run a large amount of legacy binary
code written for various processors on any given new hardware host machine. Instruction set
emulation leads to virtual ISAs created on any hardware machine.
Hardware-level virtualization is performed right on top of the bare hardware. The idea is to
virtualize a computer’s resources, such as its processors, memory, and I/O devices. The intention
is to upgrade the hardware utilization rate by multiple users concurrently.
This refers to an abstraction layer between traditional OS and user applications. OS-level
virtualization creates isolated containers on a single physical server and the OS instances to
utilize the hardware and software in datacenters.
The containers behave like real servers. OS-level virtualization is commonly used in
creating virtual hosting environments to allocate hardware resources among a large number of
mutually distrusting users. It is also used, to a lesser extent, in consolidating server hardware by
moving services on separate hosts into containers or VMs on one server.
Most applications use APIs exported by user level libraries rather than using lengthy
system calls by the OS. Since most systems provide well documented APIs, such an interface
becomes another candidate for virtualization.
hardware acceleration.
User-Application Level:
Second, programs run in this environment should show, at worst, only minor
decreases in speed.
With the help of VM technology, a new computing mode known as cloud computing
is emerging. Cloud computing is transforming the computing landscape by shifting the hardware
and staffing costs of managing a computational center to third parties, just like banks. However,
cloud computing has at least two challenges.
The first is the ability to use a variable number of physical machines and VM
The second challenge concerns the slow operation of instantiating new VMs.
Currently, new VMs originate either as fresh boots or as replicates of a template VM,
unaware of the current application state. Therefore, to better support cloud computing, a large
amount of research and development should be done.
Advantages of OS Extensions
(1 ) VMs at the operating system level have minimal startup/shutdown costs, low
(1 ) All OS-level VMs on the same physical machine share a single operating system kernel
Virtualization support on the Windows-based platform is still in the research stage. The
Linux kernel offers an abstraction layer to allow software processes to work with and operate on
resources without knowing the hardware details. New hardware may need a new Linux kernel to
support. Therefore, different Linux platforms use patched kernels to provide special support for
extended functionality.
Middleware Support for Virtualization
There are three typical classes of VM architecture. Before virtualization, the operating
system manages the hardware. After virtualization, a virtualization layer is inserted between the
hardware and the operating system. In such a case, the virtualization layer is responsible for
converting portions of the real hardware into virtual hardware. Therefore, different operating
systems such as Linux and Windows can run on the same physical machine, simultaneously.
Depending on the position of the virtualization layer, there are several classes of VM
architectures, namely the hypervisor architecture, para-virtualization, and host based virtualization.
The hypervisor is also known as the VMM (Virtual Machine Monitor). They both perform the same
virtualization operations.
The hypervisor supports hardware-level virtualization on bare metal devices like CPU,
memory, disk and network interfaces. The hypervisor software sits directly between the physical
hardware and its OS. This virtualization layer is referred to as either the VMM or the hypervisor.
The hypervisor provides hypercalls for the guest OSes and applications. Depending on the
functionality, a hypervisor can assume a micro-kernel architecture like the Microsoft Hyper-V. Or it
can assume monolithic hypervisor architecture like the VMware ESX for server virtualization. A
micro-kernel hypervisor includes only the basic and unchanging functions (such as physical
memory management and processor scheduling). The device drivers and other changeable
components are outside the hypervisor. A monolithic hypervisor implements all the
aforementioned functions, including those of the device drivers.
Therefore, the size of the hypervisor code of a micro-kernel hypervisor is smaller than that
of a monolithic hypervisor. Essentially, a hypervisor must be able to convert physical devices into
virtual resources dedicated for the deployed VM to use.
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. However, not all guest OSes are created equal, and one in
particular controls the others.
The guest OS, which has control ability, is called Domain 0, and the others are called
Domain U. Domain 0 is a privileged guest OS of Xen. It is first loaded when Xen boots without any
file system drivers being available. Domain 0 is designed to access hardware directly and manage
devices. Therefore, one of the responsibilities of Domain 0 is to allocate and map hardware
resources for the guest domains (the Domain U domains).
Full Virtualization:
With full virtualization, noncritical instructions run on the hardware directly while critical
instructions are discovered and replaced with traps into the VMM to be emulated by software.
Both the hypervisor and VMM approaches are considered full virtualization.
VMware puts the VMM at Ring 0 and the guest OS at Ring 1. The VMM scans the
instruction stream and identifies the privileged, control- and behavior-sensitive instructions.
When these instructions are identified, they are trapped into the VMM, which emulates the
behavior of these instructions.
The method used in this emulation is called binary translation. Therefore, full virtualization
combines binary translation and direct execution. The guest OS is completely decoupled from the
underlying hardware. Consequently, the guest OS is unaware that it is being virtualized. Binary
translation employs a code cache to store translated hot instructions to improve performance, but
it increases the cost of memory usage.
Host-Based Virtualization:
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. First, 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.
The virtualization layer can be inserted at different positions in a machine software stack.
However, para-virtualization attempts to reduce the virtualization overhead, and thus improve
performance by modifying only the guest OS kernel. The guest operating systems are para-
virtualized. 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-level applications run at Ring 3.
Figure 2.14 Para-virtualized VM architecture
Figure 2.15 The use of a para-virtualized guest OS assisted by an intelligent
compiler to replace non virtualizable OS instructions by hyper
calls.
Para-Virtualization Architecture:
When the x86 processor is virtualized, a virtualization layer is inserted between the
hardware and the OS. According to the x86 ring definitions, the virtualization layer
should also be installed at Ring 0. The para-virtualization replaces non virtualizable
instructions with hyper calls that communicate directly with the hypervisor or VMM.
However, when the guest OS kernel is modified for virtualization, it can no longer run on the
hardware directly.
The guest OS kernel is modified to replace the privileged and sensitive instructions
with hyper calls to the hypervisor or VMM. Xen assumes such a para virtualization
architecture. The guest OS running in a guest domain may run at Ring 1instead 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 hyper calls, the modified guest OS emulates the
behavior of the original guest OS.
Hardware Support for Virtualization: Modern operating systems and processors permit
multiple processes to run simultaneously. If there is no protection mechanism in a processor,
all instructions from different processes will access the hardware directly and cause a
system crash. Therefore, all processors have at least two modes, user mode and supervisor
mode, to ensure controlled access of critical hardware. Instructions running in supervisor
mode are called privileged instructions.
CPU
Virtualization:
A VM is a duplicate of an existing computer system in which a majority of the VM
instructions are executed on the host processor in native mode. Thus, unprivileged
instructions of VMs run directly on the host machine for higher efficiency. Other critical
instructions should be handled carefully for correctness and stability. The critical
instructions are divided into three categories:
A CPU architecture is virtualizable if it supports the ability to run the VM’s privileged
and privileged instructions in the CPU’s user mode while the VMM runs in supervisor mode.
When the privileged instructions including control- and behavior sensitive instructions of a
VM are executed, they are trapped in the VMM. In this case, the VMM acts as a unified
mediator for hardware access from different VMs to guarantee the correctness and stability
of the whole system. RISC CPU architectures can be naturally virtualized because all control-
and behavior- sensitive instructions are privileged instructions.
Memory Virtualization:
Virtual memory virtualization is similar to the virtual memory support provided
by modern operating systems. In a traditional execution environment, the operating system
maintains mappings of virtual memory to machine memory using page tables, which is a
one- stage mapping from virtual memory to machine memory. All modern x86 CPUs include
a memory management unit (MMU) and a translation lookaside buffer (TLB) to optimize
virtual memory performance.
I/O
Virtualizatio
n:
I/O virtualization involves managing the routing of I/O requests between virtual devices and
the shared physical hardware. There are three ways to implement I/O virtualization:
Para virtualization
Direct I/O
Figure 2.16 Two-level memory mapping procedure.
Full device emulation is the first approach for I/O virtualization. Generally, this
approach emulates well known, real-world devices. All the functions of a device or bus
infrastructure, such as device enumeration, identification, interrupts, and DMA, are replicated
in software. This software is located in the VMM and acts as a virtual [Link] The I/O
access requests of the guest OS are trapped in the VMM which interacts with the I/O
devices.
A single hardware device can be shared by multiple VMs that run concurrently.
However, software emulation runs much slower than the hardware it emulates. The para
virtualization method of I/O virtualization is typically used in Xen. It is also known as the
split driver model consisting of a frontend driver and a backend driver. The frontend driver is
running in Domain U and the backend driver is running in Domain 0. They interact with each
other via a block of shared memory. The frontend driver manages the I/O requests of the
guest OSes and the backend driver is responsible for managing the real I/O devices and
multiplexing the I/O data of different VMs. Although para I/O- virtualization achieves better
device performance than full device emulation, it comes with a higher CPU overhead.
Figure 2.17 Device emulation for I/O virtualization implemented inside the middle
layer that maps real I/O devices into the virtual devices for the guest device driver
to use.
1. Application Virtualization
2. Network Virtualization
3. Desktop Virtualization
4. Storage Virtualization
5. Server Virtualization
6. Data virtualization
Server Virtualization
Server virtualization is the partitioning of a physical server into smaller virtual servers to
help maximize our server resources. In server virtualization the resources of the server itself
are hidden, or masked, from users, and software is used to divide the physical server into
multiple virtual environments, called virtual or private servers.
Server Virtualization is most important part of Cloud Computing. It is composed of two words,
cloud and computing. Cloud means Internet and computing means to solve problems with help
of computers. Computing is related to CPU & RAM in digital world. Now Consider situation, You
are using Mac OS on your machine but particular application for your project can be operated only
on Windows. You can either buy new machine running windows or create virtual environment in
which windows can be installed and used. Second option is better because of
less cost and easy implementation. This scenario is called Virtualization. In it, virtual CPU, RAM,
NIC and other resources are provided to OS which it needed to run. This resources is virtually
provided and controlled by an application called Hypervisor. The new OS running on virtual
hardware resources is collectively called Virtual Machine (VM).
Figure
– Virtualization on local machine
Now migrate this concept to data centers where lot of servers (machines with fast CPU, large RAM
and enormous storage) are available. Enterprise owning data centre provide resources requested
by customers as per their need. Data centers have all resources and on user request, particular
amount of CPU, RAM, NIC and storage with preferred OS is provided to users. This concept of
virtualization in which services are requested and provided over Internet is
called Server Virtualization.
To implement Server Virtualization, hypervisor is installed on server which manages and
allocates host hardware requirements to each virtual machine. This hypervisor sits over server
hardware and regulates resources of each VM. A user can increase or decrease resources or can
delete entire VM as per his/her need. This servers with VM created on them is called server
virtualization and concept of controlling this VM by users through internet is called Cloud
Computing.
Each server in server virtualization can be restarted separately without affecting the
operation of other virtual servers.
Server virtualization lowers the cost of hardware by dividing a single server into
several virtual private servers.
One of the major benefits of server virtualization is disaster recovery. In server
virtualization, data may be stored and retrieved from any location and moved rapidly
and simply from one server to another.
It enables users to keep their private information in the data centers.
The major drawback of server virtualization is that all websites that are hosted by the
server will cease to exist if the server goes offline.
The effectiveness of virtualized environments cannot be measured.
It consumes a significant amount of RAM.
Setting it up and keeping it up are challenging.
Virtualization is not supported for many essential databases and apps.
c
Desktop virtualization is technology that lets users simulate a workstation load to access a desktop
from a connected device. It separates the desktop environment and its applications from the
physical client device used to access it. Desktop virtualization is a key element of digital
workspaces and depends on application virtualization.
Remote desktop virtualization is also a key component of digital workspaces Virtual desktop
workloads run on desktop virtualization servers which typically execute on virtual machines
(VMs) either at on-premises data centers or in the public cloud.
Since the user devices is basically a display, keyboard, and mouse, a lost or stolen device presents
a reduced risk to the organization. All user data and programs exist in the desktop virtualization
server, not on client devices.
Local desktop virtualization means the operating system runs on a client device
using hardware virtualization, and all processing and workloads occur on local hardware. This type
of desktop virtualization works well when users do not need a continuous network connection and
can meet application computing requirements with local system resources. However, because this
requires processing to be done locally you cannot use local desktop virtualization to share VMs or
resources across a network to thin clients or mobile devices.
VDI simulates the familiar desktop computing model as virtual desktop sessions that run on VMs either
in on-premises data center or in the cloud. Organizations who adopt this model manage the desktop
virtualization server as they would any other application server on-premises. Since all end- user
computing is moved from users back into the data center, the initial deployment of servers to run VDI
sessions can be a considerable investment, tempered by eliminating the need to constantly refresh end-
user devices.
RDS is often used where a limited number of applications need be virtualized, rather than a full Windows,
Mac, or Linux desktop. In this model applications are streamed to the local device which runs its own
OS. Because only applications are virtualized RDS systems can offer a higher density of users per VM.
DaaS shifts the burden of providing desktop virtualization to service providers, which greatly alleviates
the IT burden in providing virtual desktops. Organizations that wish to move IT expenses from capital
expense to operational expenses will appreciate the predictable monthly costs that DaaS providers
base their business model on.
In server virtualization, a server OS and its applications are abstracted into a VM from the underlying
hardware by a hypervisor. Multiple VMs can run on a single server, each with its own server OS,
applications, and all the application dependencies required to execute as if it were running on bare
metal.
Desktop virtualization abstracts client software (OS and applications) from a physical thin client which
connects to applications and data remotely, typically via the internet. This abstraction enables users to
utilize any number of devices to access their virtual desktop. Desktop virtualization can greatly
increase an organization’s need for bandwidth, depending on the number of concurrent users during
peak.
Virtualizing desktops provides many potential benefits that can vary depending upon the
deployment model you choose.
Simpler administration. Desktop virtualization can make it easier for IT teams to manage
employee computing needs. Your business can maintain a single VM template for employees
within similar roles or functions instead of maintaining individual computers that must be
reconfigured, updated, or patched whenever software changes need to be made. This saves time
and IT resources.
Cost savings. Many virtual desktop solutions allow you to shift more of your IT budget from
capital expenditures to operating expenditures. Because compute-intensive applications require
less processing power when they’re delivered via VMs hosted on a data center server, desktop
virtualization can extend the life of older or less powerful end-user devices. On-premise virtual
desktop solutions may require a significant initial investment in server hardware, hypervisor
software, and other infrastructure, making cloud-based DaaS—wherein you simply pay a regular
usage-based charge—a more attractive option.
Improved productivity. Desktop virtualization makes it easier for employees to access enterprise
computing resources. They can work anytime, anywhere, from any supported device with an
Internet connection.
Support for a broad variety of device types. Virtual desktops can support remote desktop access
from a wide variety of devices, including laptop and desktop computers, thin clients, zero clients,
tablets, and even some mobile phones. You can use virtual desktops to deliver workstation-like
experiences and access to the full desktop anywhere, anytime, regardless of the operating system
native to the end user device.
Stronger security. In desktop virtualization, the desktop image is abstracted and separated from
the physical hardware used to access it, and the VM used to deliver the desktop image can be a
tightly controlled environment managed by the enterprise IT department.
Agility and scalability. It’s quick and easy to deploy new VMs or serve new applications whenever
necessary, and it is just as easy to delete them when they’re no longer needed.
Better end-user experiences. When you implement desktop virtualization, your end users will enjoy
a feature-rich experience without sacrificing functionality they’ve come to rely on, like printing or
access to USB ports
Network Virtualization
Network Virtualization is a process of logically grouping physical networks and making them
operate as single or multiple independent networks called Virtual Networks.
Tools for Network Virtualization :
1. Physical switch OS –
It is where the OS must have the functionality of network virtualization.
2 . Hypervisor –
It is which uses third-party software or built-in networking and the functionalities of network
virtualization.
The basic functionality of the OS is to give the application or the executing process with a simple
set of instructions. System calls that are generated by the OS and executed through the libc
library are comparable to the service primitives given at the interface between the application
and the network through the SAP (Service Access Point).
The hypervisor is used to create a virtual switch and configuring virtual networks on it. The
third-party software is installed onto the hypervisor and it replaces the native networking
functionality of the hypervisor. A hypervisor allows us to have various VMs all working
optimally on a single piece of computer hardware.
Physical components: Network adapters, switches, bridges, repeaters, routers and hubs.
Grants connectivity among physical servers running a hypervisor, between physical
servers and storage systems and between physical servers and clients.
2. VM Network
Consists of virtual switches.
Provides connectivity to hypervisor kernel.
Connects to the physical network.
Resides inside the physical server.
Advantages of Network Virtualization :
Improves manageability –
Grouping and regrouping of nodes are eased.
Configuration of VM is allowed from a centralized management workstation
using management software.
Reduces CAPEX –
The requirement to set up separate physical networks for different node groups is reduced.
Improves utilization –
Multiple VMs are enabled to share the same physical network which enhances the
utilization of network resource.
Enhances performance –
Network broadcast is restricted and VM performance is improved.
Enhances security –
Sensitive data is isolated from one VM to another VM.
Access to nodes is restricted in a VM from another VM.
Disadvantages of Network Virtualization :
It needs to manage IT in the abstract.
It needs to coexist with physical devices in a cloud-integrated hybrid environment.
Increased complexity.
Upfront cost.
Possible learning curve.
Examples of Network Virtualization :
Virtual LAN (VLAN) –
The performance and speed of busy networks can be improved by VLAN.
VLAN can simplify additions or any changes to the network.
Network Overlays –
A framework is provided by an encapsulation protocol called VXLAN for
overlaying virtualized layer 2 networks over layer 3 networks.
The Generic Network Virtualization Encapsulation protocol (GENEVE) provides a new
way to encapsulation designed to provide control-plane independence between the
endpoints of the tunnel.
STORAGE VIRTUALIZATION
Storage virtualization is the pooling of physical storage from multiple storage devices into what
appears to be a single storage device -- or pool of available storage capacity. A central console
manages the storage.
The technology relies on software to identify available storage capacity from physical devices and
to then aggregate that capacity as a pool of storage that can be used by traditional architecture
servers or in a virtual environment by virtual machines (VMs).
The virtual storage software intercepts input/output (I/O) requests from physical or virtual
machines and sends those requests to the appropriate physical location of the storage devices that
are part of the overall pool of storage in the virtualized environment. To the user, the various
storage resources that make up the pool are unseen, so the virtual storage appears like a single
physical drive, share or logical unit number (LUN) that can accept standard reads and writes.
A basic form of storage virtualization is represented by a software virtualization layer between the
hardware of a storage resource and a host -- a PC, a server or any device accessing the storage --
that makes it possible for operating systems (OSes) and applications to access and use the storage.
Even a redundant array of independent disks, or RAID, array can sometimes be considered a type
of storage virtualization. Multiple physical drives in the array are presented to the user as a single
storage device that, in the background, stripes and replicates data to multiple disks to improve I/O
performance and to protect data in case a single drive fails.
Block-based or block access storage -- storage resources typically accessed via a Fibre Channel
(FC) or Internet Small Computer System Interface (iSCSI) storage area network (SAN) -- is more
frequently virtualized than file-based storage systems. Block-based systems abstract the logical
storage, such as a drive partition, from the actual physical memory blocks in a storage device, such
as a hard disk drive (HDD) or solid-state memory device. Because it operates in a similar fashion to
the native drive software, there's less overhead for read and write processes, so block storage
systems will perform better than file-based systems.
The block-based operation enables the virtualization management software to collect the capacity
of the available blocks of storage space across all virtualized arrays. It pools them into a shared
resource to be assigned to any number of VMs, bare-metal servers or containers. Storage
virtualization is particularly beneficial for block storage.
Unlike NAS systems, managing SANs can be a time-consuming process. Consolidating a number of
block storage systems under a single management interface that often shields users from the
tedious steps of LUN configuration, for example, can be a significant timesaver.
Storage virtualization is becoming more and more important in various other forms:
File servers: The operating system writes the data to a remote location with no need to understand
how to write to the physical media.
SAN and NAS: Storage is presented over the Ethernet network of the operating system. NAS
presents the storage as file operations (like NFS). SAN technologies present the storage as block
level storage (like Fibre Channel). SAN technologies receive the operating instructions only when if
the storage was a locally attached device.
Storage Tiering: Utilizing the storage pool concept as a stepping stone, storage tiering analyze the
most commonly used data and places it on the highest performing storage pool. The lowest one
used data is placed on the weakest performing storage pool.
This operation is done automatically without any interruption of service to the data consumer.
1. Data is stored in the more convenient locations away from the specific host. In the
case of a host failure, the data is not compromised necessarily.
2. The storage devices can perform advanced functions like replication,
reduplication, and disaster recovery functionality.
3. By doing abstraction of the storage level, IT operations become more flexible in
how storage is provided, partitioned, and protected.
Components needed for using OS Virtualization in the infrastructure are given below:
The first component is the OS Virtualization server. This server is the center point in the OS
Virtualization infrastructure. The server manages the streaming of the information on the virtual
disks for the client and also determines which client will be connected to which virtual disk (using a
database, this information is stored). Also the server can host the storage for the virtual disk locally
or the server is connected to the virtual disks via a SAN (Storage Area Network). In high availability
environments there can be more OS Virtualization servers to create no redundancy and load
balancing. The server also ensures that the client will be unique within the infrastructure.
Secondly, there is a client which will contact the server to get connected to the virtual disk and asks
for components stored on the virtual disk for running the operating system.
The available supporting components are database for storing the configuration and settings for
the server, a streaming service for the virtual disk content, a (optional) TFTP service and a (also
optional) PXE boot service for connecting the client to the OS Virtualization servers.
As it is already mentioned that the virtual disk contains an image of a physical disk from the
system that will reflect to the configuration and the settings of those systems which will be using
the virtual disk. When the virtual disk is created then that disk needs to be assigned to the client
that will be using this disk for starting. The connection between the client and the disk is made
through the administrative tool and saved within the database. When a client has a assigned disk,
the machine can be started with the virtual disk using the following process as displayed in the
below figure:
1) Connecting to the OS Virtualization server:
First we start the machine and set up the connection with the OS Virtualization server. Most of the
products offer several possible methods to connect with the server. One of the most popular and
used methods is using a PXE service, but also a boot strap is used a lot (because of the
disadvantages of the PXE service). Although each method initializes the network interface card
(NIC), receiving a (DHCP-based) IP address and a connection to the server.
When the connection is established between the client and the server, the server will look into its
database for checking the client is known or unknown and which virtual disk is assigned to the
client. When more than one virtual disk are connected then a boot menu will be displayed on the
client side. If only one disk is assigned, that disk will be connected to the client which is mentioned
in step number 3.
After the desired virtual disk is selected by the client, that virtual disk is connected through the OS
Virtualization server . At the back-end, the OS Virtualization server makes sure that the client will be
unique (for example computer name and identifier) within the infrastructure.
As soon the disk is connected the server starts streaming the content of the virtual disk. The
software knows which parts are necessary for starting the operating system smoothly, so that
these parts are streamed first. The information streamed in the system should be stored
somewhere (i.e. cached). Most products offer several ways to cache that information. For
examples on the client hard disk or on the disk of the OS Virtualization server.
5) Additional Streaming:
After that the first part is streamed then the operating system will start to run as expected.
Additional virtual disk data will be streamed when required for running or starting a function called
by the user (for example starting an application available within the virtual disk).
APPLICATION VIRTUALIZATION
The main goal of application virtualization is to ensure that cloud users have remote access to
applications from a server. The server contains all the information and features needed for the
application to run and can be accessed over the internet. As a result, you do not need to install the
application on your native device to gain access. Application virtualization offers end-users the
flexibility to access two different versions of one application through a hosted application or packaged
software.
If we need to use a computer application, we first install it on our device and then launch it. But
what if we never had to install that application, or for that matter, any application again? What if we
could simply access applications on the cloud as and when required that would work exactly as
their local counterparts? This idea is what application virtualization proposes.
Application virtualization refers to the process of deploying a computer application over a network
(the cloud). The deployed application is installed locally on a server, and when a user requests it, an
instance of the application is displayed to them. The user can then engage with that application as
if it was installed on their system.
Application virtualization is a powerful concept that takes away most of the drawbacks of
installing applications locally.
Using this, users can access a plethora of applications in real-time without having to allocate too
much storage to all of them.
Users can also run applications not supported by their devices’ operating systems.
And let us not forget how it eliminates the need for managing and updating several applications
across different operating systems for IT teams.
Each v irt ual c lust er is forme d wit h p hysic al mac hi nes or a VM host ed by
mul t i pl e physi c al c lust e rs.
The v irtual cl uste r bo undari es are shown as di sti nc t b oundari es.
This invo lv es
o vi rt ual c lust er dep lo yment,
o mo nit o ri ng and manageme nt ov er l arg e- scal e cl usters,
o re source sc he duli ng
o load balanci ng
o server consol i dat io n
o faul t to le rance
The bel ow f igure shows the conc ept of a virtual cl ust er based on
app li c ati on p arti t i oni ng or c usto mi zat i on .
• Since large number of VM images might be present, the most important thing is to
determine how to store those images in the system efficiently
• Apart from it there are common installations for most users or applications, such as OS
or user- level programming libraries.
Resource management
The term resource management refers to the operations used to control how capabilities
provided by Cloud resources and services are made available to other entities, whether users,
applications, or services.
Types of Resources
Physical Resource: Computer, disk, database, network, etc.
Logical Resource: Execution, monitoring, and application to communicate
• HA: virtual machines can be restarted on another hosts if the host where the
virtual machine running fails.
• DRS (Distributed Resource Scheduler): virtual machines can be load balanced so that
none of the hosts is too overloaded or too much empty in the cluster.
Deployment
• There are four steps to deploy a group of VMs onto a target cluster: – preparing the disk
image, – configuring the VMs, – choosing the destination nodes, and – executing the VM
deployment command on every host.
The syste m shoul d hav e the cap abi l it y of fast dep loyment.
He re, de pl o yme nt means t wo things:
o to construct and dist ri bute software stacks (OS, li brari es,
app l i cat i on s) to a p hysi cal nod e insi de c lust ers as fast as
po ssib l e,
o to qui ckl y swi tc h runt i me e nv i ro nment s from one user’ s
vi rt ual c lust er to anot her user’ s v i rt ual cl ust er.
If one user f ini shes using his syst e m, the c orres po ndi ng vi rtual cl uste r
should shut down or suspe nd q ui ckl y to save the re source s to run
ot he r VMs for ot he r use rs.
• When a VM fails, its role could be replaced by another VM on a different node, as long as
they both run with the same guest OS, a VM must stop playing its role if its residing host node
[Link] problem can be mitigated with VM live migration . The migration copies the VM
state file from the storage area to the host machine.
• There are four ways to manage a virtual cluster First way is to use a guest-based manager,
by which the cluster manager resides on a guest system. In this case, multiple VMs form a
virtual cluster
• Example: openMosix is an open source Linux cluster running different guest systems on
top of the Xen hypervisor
• Second way is we can build a cluster manager on the host systems. The
host-based manager supervises the guest systems and can restart the guest system
on another physical machine.
• Example. A good example is the VMware HA system that can restart a guest system
after failure.
•Third way to manage a virtual cluster is to use an independent cluster manager on both the host and
guest systems. This will make infrastructure management more complex
• Finally can use an integrated cluster Manager on the guest and host systems. This
means the manager must be designed to distinguish between virtualized resources and
physical resources. Various cluster management schemes can be greatly enhanced when
VM life migration is enabled with minimal overhead.
Docker is a set of platforms as a service (PaaS) product that use the Operating system level
virtualization to deliver software in packages called containers. Containers are isolated from one
another and bundle their own software, libraries, and configuration files; they can communicate
with each other through well-defined channels. All containers are run by a single operating system
kernel and therefore use fewer resources than a virtual machine.
Difference between Docker Containers and Virtual Machines
Docker Hub is the official online repository where you can find other Docker
Images that are available for use.
It makes it easy to find, manage, and share container images with others.
Docker Container
Docker container is a running instance of an image. You can use Command Line Interface (CLI)
commands to run, start, stop, move, or delete a container. You can also provide configuration for
the network and environment variables. Docker container is an isolated and secure application
platform, but it can share and access to resources running in a different host or container.
An image is a read-only template with instructions for creating a Docker container. A docker image
is described in text file called a Dockerfile, which has a simple, well-defined syntax. An image does
not have states and never changes. Docker Engine provides the core Docker technology that
enables images and containers.
You can understand container and image with the help of the following command.