Notes 2023
Notes 2023
Key Concepts
HDFS Chunk #Blocks = File Size/ Block size Total Blocks and Total chunks can be used to derive the
Allocation #Chunks = File Size/ Chunk Size block & chunks required in a DFS system like HDFS
Scheduling BEL Premptive Means that a lease can be stopped and resumed
BEL Non Premptive Lease cannot be stopped and resumed
BEL with Deadlines Lease Can be stopped and resumed, but once lease is
started it should be completed in the time committed.
AR Advanced reservation, should start at the pre agreed time
or not at all
Network computing is a term which refers to computers or nodes working together over a network.
A computer network, or simply a network, is collection of computers and other hardware devices
by links which allows sharing of resources and information. Data is transferred in the form of
packets. The connections between nodes can be established using either cable media or wireless
media. The best-known computer network is the Internet.
Although it may sound strange to some people, neither the Internet nor the World Wide Web is a
computer network. The quick answer is: the Internet is not a single network but a network of
networks and the Web is a distributed system that runs on top of the Internet.
Distributed System is a collection of independent computers that appears to its users as a single
system. Examples: Internet, Intranets etc
1) Resource sharing
2) Make a illusion that there is single system even though its distributed in nature
3) Open ended
4) Scalability
There is considerable confusion in the literature between a computer network and a distributed
system. The key distinction is that in a distributed system, a collection of independent computers
appears to its users as a single coherent system. Usually, it has a single model or paradigm that it
presents to the users. Often a layer of software on top of the operating system, called middleware,
is responsible for implementing this model. A well-known example of a distributed system is the
World Wide Web, in which everything looks like a document (Web page).
Parallel computing is a form of computation in which many calculations are carried out
simultaneously, operating on the principle that large problems can often be divided into smaller
ones, which are then solved concurrently ("in parallel").
Parallel computers can be roughly classified according to the level at which the hardware supports
parallelism, with multi-core and multi-processor computers having multiple processing elements
within a single machine, while clusters, MPPs, and grids use multiple computers to work on the
same task. Specialized parallel computer architectures are sometimes used alongside traditional
processors, for accelerating specific tasks.
Classes of parallel computers:
Parallel computers can be roughly classified according to the level at which the hardware supports
parallelism. This classification is broadly analogous to the distance between basic computing
nodes. These are not mutually exclusive; for example, clusters of symmetric multiprocessors are
relatively common.
1) Multi-core computing
2) Symmetric multiprocessing
3) Distributed computing
4) Cluster computing
A cluster is a group of loosely coupled computers that work together closely, so that in
some respects they can be regarded as a single computer. Clusters are composed of multiple
standalone machines connected by a network. While machines in a cluster do not have to
be symmetric, load balancing is more difficult if they are not.
6) Grid computing
Grid computing is the most distributed form of parallel computing. It makes use of
computers communicating over the Internet to work on a given problem. Because of the
low bandwidth and extremely high latency available on the Internet, distributed computing
typically deals only with embarrassingly parallel problems. Many distributed computing
applications have been created, of which SETI@home and Folding@home are the best-
known examples.
(B2) Ubiquitous computing (Pervasive Computing)
Ubiquitous computing is a concept in software engineering and computer science where computing
is made to appear everywhere and anywhere. In contrast to desktop computing, ubiquitous
computing can occur using any device, in any location, and in any format. A user interacts with the
computer, which can exist in many different forms, including laptop computers, tablets and
terminals in everyday objects such as a fridge or a pair of glasses. The underlying technologies to
support ubiquitous computing include Internet, advanced middleware, operating system, mobile
code, sensors, microprocessors, new I/O and user interfaces, networks, mobile protocols, location
and positioning and new materials.
This new paradigm is also described as pervasive computing. Pervasive computing goes beyond
the realm of personal computers: it is the idea that almost any device, from clothing to tools to
appliances to cars to homes to the human body to your coffee mug, can be imbedded with chips to
connect the device to an infinite network of other devices. The goal of pervasive computing, which
combines current network technologies with wireless computing, voice recognition, Internet
capability and artificial intelligence, is to create an environment where the connectivity of devices
is embedded in such a way that the connectivity is unobtrusive and always available.
Mobile Computing is "taking a computer and all necessary files and software out into the field".[1]
Mobile computing is any type of computing which use Internet or intranet and respective
communications links, as WAN, LAN, WLAN etc. Mobile computers may form a wireless
personal network.
2) Security standards
When working mobile, one is dependent on public networks, requiring careful use of VPN.
Security is a major concern while concerning the mobile computing standards on the fleet. One
can easily attack the VPN through a huge number of networks interconnected through the line.
3) Power consumption: When a power outlet or portable generator is not available, mobile
computers must rely entirely on battery power. Combined with the compact size of many
mobile devices, this often means unusually expensive batteries must be used to obtain the
necessary battery life.
4) Transmission interferences
Weather, terrain, and the range from the nearest signal point can all interfere with signal
reception. Reception in tunnels, some buildings, and rural areas is often poor.
People who use mobile devices while driving are often distracted from driving and are thus
assumed more likely to be involved in traffic accidents(While this may seem obvious, there is
considerable discussion about whether banning mobile device use while driving reduces
accidents or not.) Cell phones may interfere with sensitive medical devices. Questions
concerning mobile phone radiation and health have been raised.
The system makes decisions on its own, using high-level policies; it will constantly check and
optimize its status and automatically adapt itself to changing conditions. An autonomic computing
framework is composed of autonomic components (AC) interacting with each other. An AC can
be modeled in terms of two main control loops (local and global) with sensors (for self-monitoring),
effectors (for self-adjustment), knowledge and planner/adapter for exploiting policies based on self-
and environment awareness.
Characteristics
Even though the purpose and thus the behaviour of autonomic systems vary from system to system,
every autonomic system should be able to exhibit a minimum set of properties to achieve its
purpose:
1) Automatic
This essentially means being able to self-control its internal functions and operations. As
such, an autonomic system must be self-contained and able to start-up and operate without
any manual intervention or external help. Again, the knowledge required to bootstrap the
system (Know-how) must be inherent to the system.
2) Adaptive An autonomic system must be able to change its operation (i.e., its configuration,
state and functions). This will allow the system to cope with temporal and spatial changes
in its operational context either long term (environment customization/optimization) or
short term (exceptional conditions such as malicious attacks, faults, etc.).
3) Aware
An autonomic system must be able to monitor (sense) its operational context as well as its
internal state in order to be able to assess if its current operation serves its purpose.
Awareness will control adaptation of its operational behavior in response to context or state
changes.
In 1960s John McCarthy talking about Computers of future proposed that computers can be used
as public utility services like electricity, public phone etc. It’s nothing but organizing computing
resources like storage, processors etc as a metered service where user is charged only for the amount
of service that is being utilized. The advantage is that no or very minimal cost is needed to acquire
the resources where resources are essentially rented.
A distributed system is a collection of independent computers that appear to the users of the system
as a single computer.
2) Speed : A distributed system may have more total computing power than a mainframe
4) Reliability : If one machine crashes, the system as a whole can still survive
2) Device Sharing : Allow many users to share expensive peripherals like printer
4) Flexibility : Spread the workload over the available machines in the most cost effective way
2) Throughput - how many requests can the system handle (per second, for example)?
3) Load Distribution - are requests distributed evenly among components of the system?
4) Fault Tolerance - can the system continue to handle requests in the face of a failed
component?
5) Security - does the system ensure that sensitive resources are guarded against attack?
1) Client-Server
The client-server model is probably the most popular paradigm. The server is responsible
for accepting, processing, and replying to requests. It is the producer. The client is purely
the consumer. It requests the services of the server and accepts the results. The basic web
follows the client-server model. Your browser is the client. It requests web pages from a
server (e.g., google.com), waits for results, and displays them for the user.
2) Multiple Servers
In reality, a web site is rarely supported with only one server. Such an implementation
would not be scalable or reliable. Instead, web sites such as Google or CNN are hosted on
many (many many) machines. Services are either replicated, which means that each
machine can perform the same task, or partitioned, which means that some machines
perform one set of tasks and some machines perform another set of tasks. For example, a
site like CNN might serve images from one set of machines and HTML from another set
of machines.
To reduce latency, load on the origin server, and bandwidth usage, proxies and caches are
also used to deliver content. An end host (your browser) may cache content. In this case,
when you first request content, your browser stores a copy on your local machine.
Subsequent requests for the same content can be fulfilled by using the cache rather than
requesting the content from the origin server.
4) P2P
The peer-to-peer model assumes that each entity in the network has equivalent
functionality. In essence, it can play the role of a client or a server. Ideally, this reduces
bottlenecks and enables each entity to contribute resources to the system. Unfortunately, it
doesn't always work that way.
5) Mobile Code/Agents
The previous models assume that the client/server/peer entities exchange data. The mobile
code model assumes that components may exchange code. An example of this is Java
Applets. When your browser downloads and applet, it downloads some Java code that it
then runs locally. The big issue with this model is that it introduces security risks. No less
a security threat are mobile agents -- processes that can move from machine to machine.
The network computer model assumes that the end user machine is a low-end computer
that maintains a minimal OS. When it boots, it retrieves the OS and files/applications from
a central server and runs applications locally. The thin client model is similar, though
assumes that the process runs remotely and the client machine simply displays results (e.g.,
X-windows and VNC).
7) Mobile Devices
There is an increasing need to develop distributed systems that can run atop devices such
as cell phones, cameras, and MP3 players. Unlike traditional distributed computing entities,
which communicate over the Internet or standard local area networks, these devices often
communicate via wireless technologies such as Bluetooth or other low bandwidth and/or
short range mechanisms. As a result, the geographic location of the devices impacts system
design.
Grid computing is focused on the ability to support computation across administrative domains sets
it apart from traditional computer clusters or traditional distributed computing. Grids offer a way
of using the information technology resources optimally inside an organization. In short, it involves
virtualizing computing resources. Functionally, one can classify grids into several types:
Computational Grids (including CPU scavenging grids), which focuses primarily on
computationally-intensive operations, and Data grids, or the controlled sharing and management of
large amounts of distributed data.
1) A service for sharing computer power and data storage capacity over the Internet
2) An ambitious and exciting global effort to develop an environment in which individual users
can access computers, databases and experimental facilities simply and transparently,
without having to consider where those facilities are located. [RealityGrid, Engineering &
Physical Sciences Research Council, UK 2001]
http://www.realitygrid.org/information.html
30T U U30T
3) A model for allowing companies to use a large number of computing resources on demand,
no matter where they are located.
www.informatica.com/solutions/resource_center/glossary/default.htm
30T 30T
2) Load Balancing: Grid consists of large number of systems on which a job can be
distributed to utilize the available systems properly.
3) Reliability - If the system which is part of Grid failed to do its assigned task, it can be
moved easily on other available system. This is very important for mission critical systems.
Disadvantages of Grid computing
1) Stability - Standards are evolving in nature, so its software and standards are not stable.
2) Internet connectivity - To get work completed on Grid a high internet connection is needed
in order to gather and assemble various resources present at various locations.
3) Admin domains - The systems are located in different administrator domains so managing
the different environment increases the overhead.
When two or more computers are used together to solve a problem, it is called a computer cluster.
Then there are several ways of implementing the cluster, Beowulf is maybe the most known way
to do it, but basically it is just cooperation between computers in order to solve a task or a problem.
Cluster Computing is then just the thing you do when you use a computer cluster.
2) Single system image - User is provided with a illusion that he is exclusive owner of system
and is abstracted from the complexities that are present while working on many systems.
3) Availability - As components are exactly similar, load balancing and fault handling
becomes very easy as the running job can be moved easily from one node to other one.
1) Integration issues - If the components are heterogeneous in nature, there diving and
assembling the work can lead to issues.
2) Fault finding - It becomes difficult to find out the place where fault has happened as many
nodes are involved.
(D3) Difference between Cluster Computing and Grid Computing
Grid computing is something similar to cluster computing, it makes use of several computers
connected is some way, to solve a large problem. There is often some confusion about the
difference between grids vs. cluster computing.
1) The big difference is that a cluster is homogenous while grids are heterogeneous. The
computers that are part of a grid can run different operating systems and have different
hardware whereas the cluster computers all have the same hardware and OS. A grid can
make use of spare computing power on a desktop computer while the machines in a cluster
are dedicated to work as a single unit and nothing else.
2) Grid is inherently distributed by its nature over a LAN, metropolitan or WAN. On the
other hand, the computers in the cluster are normally contained in a single location or
complex.
3) Another difference lies in the way resources are handled. In case of Cluster, the whole
system (all nodes) behaves like a single system view and resources are managed by
centralized resource manager. In case of Grid, every node is autonomous i.e. it has its own
resource manager and behaves like an independent entity.
The applications and services that run on a distributed network using virtualized resources and
accessed by common Internet protocols and networking standards comes under Cloud computing.
Cloud computing converts the technology, services, and applications that are similar to those on
the Internet into a self-service utility. Cloud computing is based on the concept of pooling physical
resources and presenting them as a virtual resource. This computing model supports a new way of
provisioning resources, staging applications and for using applications. It’s basically brining
computing on internet scale. Cloud computing enables businesses to respond to the business
requirements dynamically by adapting their computing infrastructure, reduces complexities
involved in IT management, and brings the applications in the reach of the businesses.
The word “cloud” makes reference to the two concepts:
• Abstraction o It abstracts the details of system implementation from users and
developers. Applications run on unspecified physical systems with unknown
locations for data, with outsourced system administration of systems.
• Virtualization o The resourced are pooled and shared among the users giving them the
illusion that they are the sole owner of the resource. Also resources scales up/down in really
short time and without human intervention, charged on metered basis, with multi-tenancy
support.
Clients are, in a cloud computing architecture, exactly similar to those present in LAN.
They can be laptops, tablet computers, mobile phones, or PDAs. Clients are the devices
that the end users interact with to manage their information on the cloud.
• Datacenter
The collection of servers where the application to which you subscribe is hosted is nothing
but datacenter. It could be a large space in the organization or a room full of servers located
any place on the earth that you access via the Internet.
• Distributed Servers
Servers in Datacenter can be spread across many locations. But to user, the cloud
subscriber, these servers act as if they’re humming away right next to each other.
(B) Characteristics of Cloud Computing
The services offered on cloud like storage, computing etc are self provisioned or auto
provisioned with zero or minimal human interaction.
2. Broad network access
The services offered on cloud can be accessed from any device which is connected to
the internet. Client just needs to have minimal setup at his end to access these services being
offered on cloud.
3. Resource pooling
To support huge number of concurrent users, the physical resources are shared among
the users by appropriately handling the data security and privacy issues.
4. Rapid elasticity
As and when needed cloud platform needs to meet the user requirement of resources
by appropriately scaling up or scaling down the number of resources.
5. Metered service
Pay as you go. Users are charged only for the services that are used by them.
(C ) Cloud computing models
Cloud computing can be categorized into two distinct sets of models:
• Deployment models o With reference to the location and management of the cloud's
infrastructure.
• Service models o with reference to the particular types of services that you
The public cloud infrastructure is available for public use alternatively for a large
industry group and is owned by an organization selling cloud services.
• Private cloud
The private cloud infrastructure is operated for the exclusive use of an organization.
The cloud may be managed by that organization or a third party. Private clouds may be
either on- or off premises.
• Hybrid cloud
A hybrid cloud combines multiple clouds (private, community of public) where those
clouds retain their unique identities, but are bound together as a unit. A hybrid cloud
may offer standardized or proprietary access to data and applications, as well as
application portability.
• Community cloud
A community cloud is one where the cloud has been organized to serve a common
function or purpose. It may be for one organization or for several organizations, but
they share common concerns such as their mission, policies, security, regulatory
compliance needs, and so on. A community cloud may be managed by the constituent
organization(s) or by a third party.
(C2) Service models (SPI Model)
The portfolio of services offered results into the service model.
Three service types have been universally accepted:
• Infrastructure as a Service (IaaS) o IaaS provides virtual machines, virtual storage,
virtual infrastructure, and other hardware assets as resources that clients can
provision.
o The service provider manages the entire infrastructure, while the client is responsible
for all other aspects of the deployment which can include the operating system,
applications, and user interactions with the system.
o IaaS service providers include:
Force.com
Google AppEngine
Windows Azure Platform
• Software as a Service (SaaS ) o SaaS is a complete operating environment with
applications, management, and the user interface.
o In the SaaS model, the application is provided to the client through a thin client
interface (a browser), and the customer's responsibility begins and ends with
entering and managing its data and user interaction.
o Everything from the application down to the infrastructure is the vendor's
responsibility.
o SaaS cloud service providers are:
GoogleApps
SalesForce.com
o Some of these applications include
Significant cost reductions are achieved due to higher efficiencies and greater utilization of
cloud networks
2. Ease of utilization
The upfront cost involved in the purchase of hardware and software licenses is lowered a
lot. Due to that one can easily make utilization of cloud services.
3. Quality of Service
The resource scaling and load balancing with fault tolerance capabilities emphasize the
high availability of systems.
5. Outsourced IT management
Always latest features are provided to the users removing the need of constant update and
up gradations.
7. Low Entry Barrier
Upfront infrastructure investments are not needed for moving to the cloud.
(E) Challenges in Cloud Computing
1. Scalability
The scale of cloud computing is much higher than traditional computing. Scalability of
storage and computing power is major challenge for all three service models. It requires
large amount of sharing of resources between the users.
2. Security and Privacy
As resources are shared to achieve high scalability, the issue of data security and privacy
becomes critical. The Multi tenancy or fine grained sharing of resources is needed.
3. High Availability
In such a large computing infrastructure, hardware failure and software issues are
frequently observed. Failure in one area can impact the other areas and may get propagated
further. Keeping system up in such scenarios is really a touch challenge to handle.
Lecture 3 Notes: Virtualization
(A) Virtualization
(A4) VM disadvantages
1) A virtual machine is less efficient than an actual machine when it accesses the host hard
drive indirectly.
2) When multiple VMs are concurrently running on the hard drive of the actual host, adjunct
virtual machines may exhibit a varying and/or unstable performance (speed of
execution and malware protection). This depends on the data load imposed on the
system by other VMs, unless the selected VM software provides temporal isolation
among virtual machines.
3) Malware protections for VMs are not necessarily compatible with the "host", and may
require separate software.
(B) Virtualization
2) Storage virtualization
a) Uses virtualization to enable better functionality and more advanced features in
computer data storage systems.
b) It can be defined as technique to abstract physical storage system from user’s
application and presented as logical entities hiding the complexities of
accessing them.
c) It enables Storage as a service model.
(C2) Classification
Server virtualization can be classified as
a) system virtualization
b) process virtualization
In process virtualization,
1) The virtual machine management software runs above the operating system and provides
user level instructions compatibility.
2) Example JVM, .Net platform.
In System virtualization,
1) The virtualization software is present in between the operating system and the physical
hardware.
2) Example VMWare
(C3) System virtualization
System virtualization can further be classified based on the software responsible for the
virtualization i.e. Virtual Machine Monitor (VMM) or hypervisor. Virtual machine consists of
user’s application and the operating system on top of which the application is running on. In server
virtualization, the host OS is not very important as it’s just confined to booting up and running the
VMs. As OS is not ideal for running multiple VMs and has a little role to play, there is a new breed
of software called Hypervisor that takes over the OS. Hypervisor is an efficient Virtual Machine
Manager (VMM) that is designed from the ground up to run multiple high performant VMs. So, a
Hypervisor is to VMs what an OS is to processes.
Hypervisor can be classified as -
1. Native hypervisor
Native hypervisor run directly on top of physical hardware providing the features
like IO etc required by the applications.
2. Hosted hypervisor
Hosted hypervisors runs on top of operating system and uses features of operating
system.
3. Hybrid hypervisor.
Hybrid hypervisors runs directly on top of hardware and uses features of operating
system.
(D) Storage Virtualization
One of the major benefits of abstracting the host or server from the actual storage is the ability
to migrate data while maintaining concurrent I/O access. The host only knows about the logical
disk (the mapped LUN) and so any changes to the meta-data mapping is transparent to the host.
2) Improved utilization
Utilization can be increased by virtue of the pooling, migration, and thin provisioning services.
This allows users to avoid over-buying and over provisioning storage solutions.
3) Fewer points of management
With storage virtualization, multiple independent storage devices, even if scattered across a
network, appear to be a single monolithic storage device and can be managed centrally.
(D2) Implementation approaches
1) Host-based
2) Storage device-based
3) Network-based
(D.2.1) Host-based storage virtualization
Host-based virtualization requires additional software running on the host, as a privileged task or
process. In some cases volume management is built into the operating system, and in other
instances it is offered as a separate product. Volumes (LUN's) presented to the host system are
handled by a traditional physical device driver. However, a software layer (the volume manager)
resides above the disk device driver intercepts the I/O requests, and provides the meta-data lookup
and I/O mapping.
Most modern operating systems have some form of logical volume management built-in (in Linux
called Logical Volume Manager or LVM; in Solaris and FreeBSD, ZFS's zpool layer; in Windows
called Logical Disk Manager or LDM), that performs virtualization tasks.
Pros
1) Simple to design and code
2) Supports any storage type
3) Improves storage utilization without thin provisioning restrictions
Cons
1) Storage utilization optimized only on a per host basis
2) Replication and data migration only possible locally to that host
3) Software is unique to each operating system
4) No easy way of keeping host instances in sync with other instances
5) Traditional Data Recovery following a server disk drive crash is impossible
Cons
1) Complex interoperability matrices - limited by vendors support
2) Difficult to implement fast meta-data updates in switched-based devices
3) Out-of-band requires specific host based software
4) In-band may add latency to I/O
5) In-band the most complicated to design and code
Both models also require some processing hardware to provide these services.
Appliance based devices
1) Are Dedicated hardware devices that provide SAN connectivity of one form or another.
2) These sit between the hosts and storage and in the case of in-band (symmetric) appliances
can provide all of the benefits and services discussed in this article. I/O requests are targeted
at the appliance itself, which performs the meta-data mapping before redirecting the I/O by
sending its own I/O request to the underlying storage.
3) The in-band appliance can also provide caching of data, and most implementations provide
some form of clustering of individual appliances to maintain an atomic view of the
metadata as well as cache data.
Amazon has a long history of using a decentralized IT infrastructure. This arrangement enabled our
development teams to access compute and storage resources on demand, and it has increased overall
productivity and agility. By 2005, Amazon had spent over a decade and millions of dollars building and
managing the large-scale, reliable, and efficient IT infrastructure that powered one of the world’s
largest online retail platforms. Amazon launched Amazon Web Services (AWS) so that other
organizations could benefit from Amazon’s experience and investment in running a large-scale
distributed, transactional IT infrastructure. AWS has been operating since 2006, and today serves
hundreds of thousands of customers worldwide. Today Amazon.com runs a global web platform
serving millions of customers and managing billions of dollars’ worth of commerce every year.
Using AWS, you can requisition compute power, storage, and other services in minutes and have the
flexibility to choose the development platform or programming model that makes the most sense for
the problems they’re trying to solve. You pay only for what you use, with no up-front expenses or
long-term commitments, making AWS a cost-effective way to deliver applications.
Here are some of examples of how organizations, from research firms to large enterprises, use AWS
today:
- A large enterprise quickly and economically deploys new internal applications, such as HR
solutions, payroll applications, inventory management solutions, and online training to its
distributed workforce.
- An e-commerce website accommodates sudden demand for a “hot” product caused by viral buzz
from Facebook and Twitter without having to upgrade its infrastructure.
- A pharmaceutical research firm executes large-scale simulations using computing power
provided by AWS.
- Media companies serve unlimited video, music, and other media to their worldwide customer
base.
AWS is readily distinguished from other vendors in the traditional IT computing landscape because it
is:
Flexible
AWS enables organizations to use the programming models, operating systems, databases, and
architectures with which they are already familiar. In addition, this flexibility helps organizations mix
and match architectures in order to serve their diverse business needs.
Cost-effective
With AWS, organizations pay only for what they use, without up-front or long-term commitments.
Scalable and elastic
Organizations can quickly add and subtract AWS resources to their applications in order to meet
customer demand and manage costs.
Secure
In order to provide end-to-end security and end-to-end privacy, AWS builds services in accordance
with security best practices, provides the appropriate security features in those services, and
documents how to use those features.
Experienced
When using AWS, organizations can leverage Amazon’s more than fifteen years of experience
delivering large-scale, global infrastructure in a reliable, secure fashion.
4. Amazon Web Services Cloud Platform
AWS is a comprehensive cloud services platform that offers compute power, storage, content delivery,
and other functionality that organizations can use to deploy applications and services cost-
effectively—with flexibility, scalability, and reliability. AWS self-service means that you can proactively
address your internal plans and react to external demands when you choose.
5. Important AWS
(A) Virtualization
Virtualization is the key enabler behind cloud computing. Using this technique of Virtualization, the
data center infrastructure can be consolidated from hundreds of servers to just tens of servers. All the
physical server s like Web Servers, Database Servers and Messaging servers runs as virtualized
machines. This results in lower Total Cost of Ownership (TCO) and brings substantial savings on the
power bills and reduced cost of cooling equipment.
Virtualization is abstracting the hardware to run virtual instances of multiple guest operating systems
on a single host operating system. For example it can be seen with Virtualization in action by installing
Microsoft Virtual PC, VMware Player. These desktop virtualization solutions let you install and run an
OS within the host OS. The virtualized guest OS images are called Virtual Machines. The benefit of
virtualization is realized more on the servers than on the desktops.
There are many reasons for running Virtualization on the servers running in a traditional data center.
Failed web server, app server or database server can more fastly and flexibly restored using
virtual machines.
Through virtualization, the load can be evenly spread across all the servers.
By consolidating the data center to run on fewer but powerful servers, there is a significant
cost reduction. The power consumed by the data center and the maintenance cost of the
cooling equipment comes down drastically.
All major virtualization software have a centralized console to manage, maintain, track and
monitor the health of physical servers and the VMs running on these servers.
There are two core services that enable the users to get IaaS model in public and private clouds. These
are
2) Migration services
It is expensive operation to maintain and upgrade a main server with lot of hosted applications
and users. It takes lot of time and effort of IT administrators. With advanced virtualization
techniques these tasks have become very easy and accomplished within small amount of time.
(C ) VM Life Cycle
A VM goes through various phases during its life. These stages can be described as follows –
1) IT service request
a) Performs infrastructure analysis – seeing servers resource pool, matching these resources
with requirements
2) VM provision
3) VM in operation
b) Supports migration
4) Release VM
a) End of service
1) First select server from pool of available servers along with appropriate OS template
2) Then need to load appropriate software like device drivers, middleware etc
Moving all key components of machine like CPU, Storage disks , networking and memory in a easily
moved data files from one machine to another machine is Migration. There are different techniques
for migration –
- While being powered on, movement of virtual machine from one physical host to another
- Examples
VMWare Vmotion
- Example VMWare
- Migration of virtual disks or configuration file of a running virtual machine to a new data
store without any interruption in the availability of VM service.
- Example VMWare
2) Stage 1 Reservation
Request is send to migrate OS from Host A to Host B
During first iteration, all pages are copied from A to B. In subsequest iterations only dirtied
pages are copied.
4) Stage 3 Stop-and-Copy
5) Stage 4 Commitment
B indicates to A that it has received all consistent OS image. Host A acknowledges the message
and now original VM on A is discarded. Host B becomes primary host.
6) Stage 5 Activation
Migrated VM on B is activated. Post migration device drivers are reattached to new machine
and moved IP addresses are advertised.
- Web service enables users to provision new machines into Amazon’s infrastructure in
minutes
- Amazon Auto Scaling service allows scaling Amazon EC2 capacity up or down automatically
and according to the conditions that user has specified
- CloudWatch helps in monitoring for AWS cloud resources and their utilization
(F2) Eucalyptus
- Elastic Utility Computing Architecture for Linking Your Programs to Useful Systems
- Implemented using common Linux tools and basic web service technologies
- Simple installation and deployment
-
(F3) OpenNebula
- Virtual infrastructure manger that orchestrates storage, network and virtualization
technologies
- Can be used as virtualization tool to manage virtual infrastructure usually private cloud
- Supports hybrid cloud to combine local infrastructure with public cloud based infrastructure
- Supports public clouds by providing cloud’s interfaces to expose its functionality for VM,
storage and network management.
(F4) Aneka
- .net based platform and framework designed for building and deploying distributed
applications on cloud
- Provides set of APIs for exploiting distributed resources and expressing business logic of
applications
- Allows users to build and schedule applications, provision resources and monitor results
using pricing, accounting etc
- VM scheduling algorithms
Eucalyptus is open source software for building private clouds that are compatible with AWS APIs. Our
cloud software pools together compute, network, and storage resources within your IT environment
to create on-demand, self-service private cloud resources.
Eucalyptus can dynamically scale up or down depending on application workloads and is uniquely
suited for enterprise clouds, delivering production-ready software that supports the industry-standard
AWS APIs, including EC2, S3, EBS, IAM, Auto Scaling, Elastic Load Balancing, CloudWatch and
CloudFormation. The benefits of this open source software for private clouds are highly efficient
scalability, organization agility, and increased trust and control for IT.
(B) Eucalyptus Cloud Computing Architecture
U
Eucalyptus is made up of five distinct components that can be distributed in various cloud computing
architectures. The five components are grouped into three separate levels.
1) Cloud Level
The Cloud Controller (CLC) is a Java program that offers EC2-compatible SOAP and Query interfaces,
as well as a Web interface to the outside world, for distribution within the cloud architecture. In
addition to handling incoming requests, the CLC acts as the administrative interface for cloud
management and performs high-level resource scheduling and system accounting. The CLC accepts
user API requests from command-line interfaces like euca2ools or GUI-based tools like the Eucalyptus
Management Console and manages the underlying compute, storage, and network resources. Only
one CLC can exist per cloud.
The CLC handles high-level:
Authentication
Accounting
Reporting
Quota management
Scalable Object Storage
U
Scalable Object Storage (SOS) is the Eucalyptus service equivalent to AWS Simple Storage Service (S3).
The SOS is pluggable service that allows infrastructure administrators the flexibility to implement
scale-out storage on top of commodity resources using open source and commercial solutions that
implement the S3 interface. Eucalyptus provides a basic storage implementation, known as Walrus,
which may suit evaluation and smaller cloud deployments. For large-scale and increased performance,
users are encouraged to connect the SOS to dedicated storage solutions such as RiakCS.
(B2) Eucalyptus Architecture: Cluster Level
U
A cluster is equivalent to an AWS availability zone, and a single Eucalyptus cloud can have multiple
clusters. The Cluster Controller (CC) is written in C and acts as the front end for a cluster within a
Eucalyptus cloud and communicates with the Storage Controller (SC) and Node Controller (NC). The
CC manages instance (i.e., virtual machines) execution and Service Level Agreements (SLAs) per
cluster.
Storage Controller (SC)
U
The Storage Controller (SC) is written in Java and is the Eucalyptus equivalent to AWS Elastic Block
Store (EBS). The SC communicates with the Cluster Controller (CC) and Node Controller (NC) within
the distributed cloud architecture and manages Eucalyptus block volumes and snapshots to the
instances within its specific cluster. If an instance requires writing persistent data to memory outside
of the cluster, it would need to write to the backend storage, which is available to any instance in any
cluster. The SC interfaces with storage systems, including local, NFS, iSCSI, and SAN.
(B3) Eucalyptus Architecture: Node Level
U
The Node Controller (NC) is part of the Node level of the cloud computing architecture. It is written in
C and hosts the virtual machine instances and manages the virtual network endpoints. The NC
downloads and caches images from Scalable Object Storage as well as creates and caches instances.
(C ) Eucalyptus Cloud Features
U
Eucalyptus delivers the broadest set of AWS compatible services including; EC2, S3, EBS, IAM,
CloudFormation, Auto Scaling and more. It is based on an open and modular architecture designed to
integrate with existing and emerging IT resources such as RiakCS. With Eucalyptus, IT and DevOps
teams can regain control over costs, performance and security of the cloud without changing existing
cloud-native applications.
AWS Compatibility
Hybrid Cloud Management
Cloud Account Management
Networking
Storage
Compute
Self-service Provisioning
Cloud Management
Eucalyptus Roadmap
Multi-Tenancy
Source :
Wikipedia
Moving to Cloud, by Sitaram, Manjunath
(A) Multi-Tenancy
Multi-tenancy (MT) is important technical challenge that any cloud platform needs to address. It is
nothing but the ability to share the resources in a very fine grained manner between the users of the
cloud services. It is software architecture in which the several customers (tenants) share the single
instance of the application. Service provider hosts the application instance on his infrastructure and
the tenants (or customers) shares that single instance. The users of the application can be actual users
who have been provided the access by the tenants. For example, SalesForce.com (service provider)
hosts the CRM application using there infrastructure. A company who wants to use this hosted CRM
application for their business is the customer and the employees of the companies to whom the
company provides privileges to access the CRM application are the actual users of the application.
With this architecture, data, configuration, user management, tenant specific functionality etc are
shared between the tenants. MT contrasts with multi-instance architectures, where separate software
instances operate on behalf of different tenants. In virtualization, the user is given the illusion that he
owns the complete infrastructure on which application is running through concept of virtual machine.
The hypervisor plays important role to achieve the separation between the multiple users. In the multi
tenant architecture, the application is redesigned to handle the resource sharing between the multiple
tenants.
(B) Economics of MT
1) Cost Savings - An application instance usually incurs a certain amount of memory and processing
overhead which can be substantial when multiplied by many customers, especially if the
customers are small. As the single instance is shared between multiple tenants this cost
overhead can be segregated between multiple tenants.
2) Data aggregation/data mining - In non MT architecture, the data for different customers will be
located in different database schemas and pulling information from all of them can be a very
cumbersome task. In MT architecture, instead of collecting data from multiple data sources,
with potentially different database schemas, all data for all customers is stored in a single
database schema. Thus, running queries across customers, mining data, and looking for trends
is much simpler.
3) Complexity - Because of the additional customization complexity and the need to maintain per-
tenant metadata, multitenant applications require a larger development effort.
At the same time, multitenancy increases the risks and impacts inherent in applying a new
release version. As there is a single software instance serving multiple tenants, an update on
this instance may cause downtime for all tenants even if the update is requested and useful
for only
one tenant. Also, some bugs and issues resulted from applying the new release could manifest
in other tenants' personalized view of the application. Because of possible downtime, the
moment of applying the release may be restricted depending on time usage schedule of more
than one tenant.
( C ) Requirements for MT architecture
1) Customization –
2) Quality of service
1) Custom instances
Lowest level of MT
Each customer has own custom version of application
Different versions of application are running differently
Extremely difficult to manage as needs dedicated support for each customer
2) Configurable instances
Storage and server are the two resources that are shared in MT between the tenants.
(E1) Storage sharing
Storage can be file system or databases including relational and non relational databases. We discuss
only the approach where only one instance of database is shared between the tenants.
1) Dedicated tables per tenant
In shared table approach, it’s very complex to provide support for the customizations. Each tenant
might have his unique requirements to store data in the tables and using shared table approach,
managing such requirements needs to come up with proper data architecture.
1) Pre allocated columns
1.
2.