Cloud - Computing - Notes 2
Cloud - Computing - Notes 2
Contents
1 Cloud Computing Overview 4
1.1 Cloud Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1.1 Clients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1.2 Datacenter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.1.3 Distributed Servers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2 Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2.1 Software As A Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2.2 Platform As A Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2.3 Hardware As A Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.3 Infrastructure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.3.1 Grid Computing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.3.2 Full Virtualization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.3.3 Para-virtualization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3 Components 8
1
9.2.2 Salesforce.com . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
9.3 Software As A Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
9.3.1 Google App Engine and Salesforce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
9.3.2 Google . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
9.4 Software Plus Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2
14.2.2 VM Provisioning Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
14.3 Virtual Machine Migration Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
14.3.1 Live Migration and High Availability . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
14.3.2 Regular or Cold Migration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
14.3.3 Live Storage Migration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
14.4 The Anatomy of Cloud Infrastructures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
14.4.1 Distributed Management of Virtual Machines . . . . . . . . . . . . . . . . . . . . . . . 25
14.4.2 Reservation-Based Provisioning of Virtualized Resources . . . . . . . . . . . . . . . . . 26
14.4.3 Provisioning to Meet SLA Commitments . . . . . . . . . . . . . . . . . . . . . . . . . 26
14.5 Distributed Management of Virtual Infrastructures . . . . . . . . . . . . . . . . . . . . . . . . 26
14.5.1 VM Model and Lifecycle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
15 References 29
3
1 Cloud Computing Overview
• Cloud Computing is a metaphor for the Internet. It is all the other stuff that makes the network work.
• Cloud Computing allows you to access applications that reside at some other location than your
computer, such as a distant data center.
• In Cloud Computing, another company stores your applications. They handle the costs of servers,
manage the software updates, perform maintenance tasks, etc. Your company does not need to pay
for hardware and maintenance.
• A point of failure is when there is an Internet outage or problems at the ISP, in which case the client
will not be able to access the applications in the cloud.
• In some scenarios, the data may contain sensitive information, so it may not be suitable to store it in
someone else’s machine.
• It is easier to manage and access data that is closer and not under someone else’s control.
– Mobile: Laptops and Smartphones. They have speed and security concerns.
– Thin: They are the clients that do not have internal hard drives. They let the server do all the
work, and they just display the information.
– Thick: It is a computer that uses a web browser to connect to the cloud.
• Some of the advantages of thin clients are listed below.
1. They are cheaper than thick clients since they need less hardware.
2. They last longer before they need to be upgraded.
3. They are managed at the server, so there are lower IT costs and fewer points of failure.
4. They don’t have hard drives, so there are no chances of malware.
5. They cannot operate without the server, so lesser chances of being stolen.
4
1.1.2 Datacenter
• Collection of servers where the applications ar housed.
• There are also virtual servers, which allow clients to use multiple instances of servers. Multiple virtual
servers can be running on one physical server.
1.2 Services
Multitenancy: Resources can be shared by many users. Multiple customers can use the same application.
Device Independence: The systems can be accessed on different hardware.
• Suitable for software that performs simple tasks and does not need to interact a lot with other systems.
• Some applications that benefit from SaaS are:
1. Customer Resource Management: Used by businesses to manage their interactions with
current and potential customers.
2. Video Conferencing: Users can host or join meetings from any device with an Internet con-
nection.
3. IT Service Management: Companies do not need to maintain complex IT infrastructures.
SaaS provides ITSM platforms, which can be accessed globally by IT teams.
4. Accounting: Businesses can manage their finances from anywhere in the world. Suitable for
small businesses that cannot afford their own servers.
5. Web Analytics: Collect website data.
6. Web Content Management: Create, manage, and publish digital content.
• Some of the benefits of SaaS are:
5
– Customer pays a vendor to use an application. Once they do, they may be unable to port the
application to a different vendor. Even if they are able to do so, the old vendor will charge a lot.
– Organizations with specific computational needs might not be able to find the application through
SaaS. They might need to buy the software and install it on their local machines.
1. Server Space
2. Network Equipment
3. CPU Cycles
4. Memory
5. Storage Space
6
1.3 Infrastructure
1.3.1 Grid Computing
• Here, a single problem is solved by using the resources of many computers.
• It uses a program that can divide and send pieces of the program to thousands of computers.
• This method is appealing because it is cost-effective since it can solve problems that need a lot of
computing power by simply sharing the resources of several computers. Each computer contributes
with its unused computing power.
• In Grid Computing, a large project is divided among multiple computers. On the other hand, Cloud
Computing is the opposite; it allows multiple smaller applications to run at the same time.
• In Grid Computing, the resources are managed by different entities. On the other hand, in Cloud
Computing they are managed by a single provider.
1.3.3 Para-virtualization
• Here, multiple OS can run on a single hardware system.
• In full virtualization, the entire system is emulated, whereas para-virtualization does not emulate the
hardware; instead, it uses a modified guest OS that communicates with the hypervisor.
• Para-virtualization runs better than full virtualization because not all the elements are emulated. Also,
many different OS can run simultaneously.
• It works best in:
1. Disaster Recovery: In case of a disaster, the guest instances can be moved to other hardware.
2. Migration: It is easier to move to a new system because the guest instances can be removed
from the underlying hardware.
3. Capacity Management: It is easier to add more processing power in a virtualized environment.
7
• There are also distributed databases, which physically disperse the data among different hardware.
But, for the client, all the data appears to be located in the same place.
• The advantages of distributed databases are:
– If there is a fault in one system, it will only affect the data that is stored in that system, not the
entire database.
– The load is balanced among the servers.
– The data can be placed near the location with the greatest demand, which will improve the
performance.
– It is cheaper to create a network of smaller computers with the same power as a single large
computer.
– There is more flexibility. The systems can be changed without harming the entire database.
• The disadvantages of distributed databases are:
– Complexity. It requires extra work to maintain the system.
– Labor costs. the complexity requires more workers.
– Security. The database fragments and the sites where they are stored must be secured.
– Integrity. If the database is too complex or changes quickly, it will be difficult to maintain the
integrity of the database.
2. Power: Even though the database is not housed locally, it is still easy to create and manage the
databases.
3. Integration: The database can be easily integrated with other services, such as calendars, emails,
and people.
4. Management: Usually, large databases need to be constantly pruned and optimized, which is expen-
sive. For this, cloud providers use off-shore labor pools. So, you may be using the service in Chicago,
the physical servers are in Washington, and the database administrator is in the Philippines.
3 Components
There are two main components in client/server computing:
1. Servers: They house the organization’s applications.
2. Thin or Light Clients: They display the results. They do not have hard drives.
Thin clients use an application program to communicate with the servers. The servers do the processing and
send the results back to the thin clients.
8
4 When You Can Use Cloud Computing?
Depends on a number of factors, such as:
• Cost/Benefit Ratio
• Speed of Delivery
• How much capacity you will use?
• Whether your data is regulated?
• Your organization’s corporate and IT structure.
There are 3 major implementations of cloud computing, which are discussed below.
• Suitable for organizations of any size, but large organizations avoid it since it doesn’t offer standard
management, monitoring, and governance capabilities.
9
– Web Applications, such as YouTube.
– SaaS, such as Google Apps.
– Software plus Services, such as Microsoft Online Services.
6. Cost: Initially, it is less expensive to run an application on the cloud, but overtime it might be cheaper
to buy the application outright.
7. Integration with Existing Applications: If you have two applications that need to work together,
avoid separating them into local and cloud.
8. Latency Concerns: In the cloud, the data is geographically dispersed across various different servers,
so it might take some time for you to receive the data. So, if you need the data instantaneously, then
the cloud is not an optimal solution.
10
8 Cloud Computing with the Titans
8.1 Google
• Google App Engine: It allows developers to build web applications on the same infrastructure as
Google’s own applications.
• Some of the features of Google App Engine include:
– It makes it easier to deploy web applications by dynamically providing computing resources as
needed.
– It provides replication and load balancing to handle large amounts of traffic.
– It allows developers to use Google’s own APIs for functionalities such as authentication and email.
• Google Web Toolkit: It allows to develop and debug applications in Java and deploy them in
Javascript. It avoids the headaches associated with AJAX, such as browser incompatibilities.
8.2 Microsoft
• Windows Azure: It is a cloud-based OS that allows developers to host and manage web applications
by providing them with on-demand computing and storage resources. It supports standards such as
REST, SOAP, and XML.
• SQL Services: It adds SQL Server capabilities to the cloud, which in turn allows the storage of
structured, semi-structured, and unstructured data. It provides features such as search, relational
queries, synchronization, and integration of data.
• Windows Live: It is a set of online services that allow customers to communicate and exchange
information with each other. It includes e-mail, instant messaging, and photo-sharing. It can be
integrated with third-party services, such as Twitter and LinkedIn.
8.3 Amazon
• Amazon EC2: Amazon Elastic Compute Cloud. It provides a web interface that allows customers to
control their computing resources. It takes very less time to obtain and boot a new server, making it
highly scalable. It allows to run Windows-based applications on Amazon’s cloud computing platform.
• Amazon SimpleDB: It allows to store, process, and query data sets on the cloud. It requires no
schema, automatically indexes the data, and provides simple APIs for storage and access.
• Amazon SQS: Amazon Simple Queue Service. It provides a queue for storing messages as they travel
between computers. This allows data to be moved between distributed components without getting
the data lost or requiring each component to be available.
11
9.1.1 Amazon EC2
• It has a simple web interface that allows businesses to obtain and configure capacity with minimum
friction.
• It allows organizations to have control over the computing resources and run on Amazon’s computing
environment.
• It has a quick scaling capacity, both up and down, based on the computing requirements.
• It allows the clients to pay for only the capacity they actually use.
• It runs on Windows and SQL Server.
• AWS delivers additional features that automate the customer usage of EC2, such as:
– Load Balancing: It allows the customers to balance the incoming requests and distribute the
traffic across multiple EC2 compute instances.
– Auto-Scaling: It automatically grows and shrinks the EC2 compute capacity based on the
requirements.
– Monitoring: The customers can monitor the operation metrics of Amazon EC2.
– Management Console: It provides a simple web interface where the customers can access and
manage their AWS cloud resources.
9.1.2 GoGrid
• Service provider of Windows and Linux cloud-based server hosting.
• Offers 32-bit and 64-bit editions of Windows Server 2008 within its cloud computing infrastructure.
• It is the first IaaS provider to offer Windows Server 2008 in the cloud.
• It allows to quickly and easily create, deploy, load-balance, and manage Windows and Linux cloud
servers within minutes.
9.2.1 RightScale
• It is compatible with many different cloud providers, such as FlexiScale, GoGrid, Mosso, and CloudFS.
• It provides a management dashboard to deploy and manage the applications.
• Provides built-in redundancy, fault tolerance, and geographical distribution of resources.
9.2.2 Salesforce.com
• Offers Force.com as its on-demand platform.
• Force.com has Visualforce technology, which allows customers to design any app for any user anywhere.
It provides the world’s first User-Interface As A Service.
• Visualforce allows customers to create user experiences without any software and hardware require-
ments.
• Visualforce includes the following features:
12
– Pages: They are the design definition of the UI. They are created using HTML, AJAX, and Flex.
Visualforce automatically detects the user’s device and adjusts the settings and configurations
accordingly.
– Components: Allow to create reusable interface elements.
– Logic Controllers: Used for building UI behavior. Used for interactions among the components.
9.3.2 Google
Google provides SaaS to store sensitive data. It has one of the largest networks of distributed data centers.
In Google, security falls under 3 main categories:
• People: Google has an Information Security team that handles the defense systems, security review
processes, and security plans.
• Process: Each Google application is constantly reviewed for security.
• Technology: The data in Google’s applications is distributed across multiple servers, which makes it
difficult to read the data in case there is a breach. Also, it can rapidly distribute updates and changes.
13
• Automation: The applications are kept up-to-date and maintained by the provider; there is no need
for your IT staff to intervene manually.
• Flexibility: Testing and deploying applications is easy. It is also easy to switch between applications.
• Better Mobility: The users can access the cloud from anywhere with an Internet connection.
• Better Use of IT Staff: The IT staff need not worry about updates and issues; they can focus on
more important tasks other than maintenance.
14
11 Deleting Your Datacenter
What and when to remove when moving to the cloud? You can backup the data, but as you are using the
cloud, the data will change, so the backup will not be up to date.
Companies can have a centralized management of multiple desktops in the cloud, which provides higher
efficiency and lower costs than traditional desktop management.
Hypervisors allow desktops to operate independently of network access.
Sensitive information can be moved to the cloud if the user is happy with the vendor’s security measures.
Large files should be kept on-site if you store more than you access. Infrequently accessed files should be
stored on-site, or else it will increase the bill.
12.1 Clients
There are different types of clients that can be used to connect to the cloud. A combination of these can be
used based on requirements.
• A mobile client can access the cloud from anywhere, so there might not be an optimized connection.
• But, not all applications require speedy connections. A mobile client will not be inputting gigabytes
of data.
• There are also security concerts. If a laptop gets stolen, then all the information it contains will be
compromised. On the other hand, if the data is maintained in the cloud and the users have only a few
files on their laptops, then only some of the data will get compromised in case the laptop is stolen.
• Thin Clients provide high-level security since they do not store any data. All the data is stored in
either a data center or on the cloud, so there is no risk of physical breach.
• Thick Clients are more vulnerable to attacks than thin clients because they store the data on their
hard drives. So, if the machine gets stolen, then the data gets compromised.
• There is also a reliability issue. If a thin client fails, we can simply plug in another thin client. On the
other hand, if a thick client fails, then the OS, the data, and the configurations will be lost.
15
12.2 Security
There are several security benefits in a cloud solution.
• The clients that store the data (thick) are more prone to
data leakage than clients with no permanent storage (thin).
• Centralization also provides better monitoring since all the
data is located in one place.
• There are many paying clients, so the cloud provider can do more since he has more money. It also
increases the reputation of the provider.
• It will also save costs for your organization since there is no need to have IT security staff.
12.2.3 Logging
• Logging can also be improved.
• In the cloud, providers can add as much memory as needed to extend logging.
• Logging refers to the process of recording and storing information about the operation of applications.
12.2.4 Forensics
• If there is a breach, the cloud provider will respond to the incident will lesser downtime than if you
had to do it locally.
• In a cloud solution, if there is a problem, the virtual machine can be cloned and analyzed in offline
mode.
• On the other hand, if there is an issue in a company, then the IT staff need to take the server down,
investigate and resolve the problem quickly, and get the server back online with as much less downtime
as possible.
12.2.5 Development
Security vendors are actively developing products that can apply to virtual machines and the cloud.
16
12.2.6 Auditing
Compliance: Prior to SaaS, compliance could be managed by a few tasks:
• Identify the users and their access privileges.
SaaS makes these steps complicated. If compliance-sensitive data is stored with a SaaS provider, then it is
difficult to determine where this data is actually stored; it could be on the provider’s equipment or one of
the provider’s partners’ equipment. SaaS has a lot of regulations for service providers.
PCI Appendix A: Requirement A.1 of Appendix A has 4 sub-provisions that regulate how data is
maintained by a service provider.
• Requirement A.1.1 Unauthorized Exposure: In the cloud, your data will sit on the same server
as other client’s data. But, each client should only be able to access their own data. No entity other
than your organization should be able to view your data.
• Appendix A.1.2 Credentials Management: The access controls should be handled by the service
provider. These controls should only allow the data owner to access it, and they should protect the
data from others. The problem is that the authentication credentials are stored on the provider’s
servers, so if there is a breach at the provider, then the data and the credentials will be compromised.
Also, when a user leaves your organization, their credentials must be revoked. The best method is to
have a direct connection with the organization’s directory services to authenticate into the SaaS.
• Appendix A.1.3 Logging: The logs and audit trails should be used for investigating incidents.
• Appendix A.1.4 Reporting: The provider should provide timely forensic investigation in case there
is a breach.
Web Application Breaches: The service providers must follow the Open Web Application Security
Project (OWASP) guidelines for secure application development.
VPN:
• The more applications get offloaded to the cloud, the fewer
things you have to worry about in-house.
• The advantages of SSL VPN over the traditional IPSec (Internet Protocol Security) are:
– It does not require any software to be installed.
– It has lesser overhead.
17
– It has lesser maintenance overhead, and it is easy to use.
• An SSL VPN also ensures that the end users comply with the organization’s security policies. Some
of these measures are:
– An antivirus software should be running.
– Verifying whether the OS patches have been installed.
– Checking to see if there are any malware or bots running.
Key Management:
• With cloud storage, you can encrypt the data
before you store it and set up the data to be
destroyed when the storage key is destroyed.
12.3 Network
There are 4 different levels of connectivity in order for the cloud to deliver its best resources.
18
12.3.2 The Accelerated Internet
• We can use advanced application delivery features on top of the Internet connection. This will benefit
both the cloud provider and the client.
• Network-related functions can be offloaded from the server, providing a cloud improvement of 20 to 50
percent.
• We can use SSL termination, TCP connection management, dynamic caching, and prefetching results,
which will provide a 50 percent performance increase for the end users.
• This method is oriented towards the cloud provider, but it also benefits the end users.
• At the cloud, it requires the installation of a server-side appliance. At the end user, it requires the
installation of a downloadable client.
19
12.4 Services
The different services you need to run based on your provider and organization are listed below.
12.4.1 Identity
• An application needs to know its users. For this, the application asks for a digital identity (a series of
bytes) to describe the user.
• This information allows the application to determine who the user is and what he/she is allowed to do.
• Applications that reside in-house use an Active Directory to provide this information. On the other
hand, clouds have their own identity services.
• Amazon Cloud Services: Sign-in using an Amazon-defined entity.
12.4.2 Integration:
• Amazon’s Simple Queue Service (SQS) allows applications to exchange messages via queues in the
cloud. SQS replicates messages across several queues. It does not guarantee in-order delivery.
• Another example of cloud-based integration is BizTalk Services. Instead of queues, it uses a relay
service in the cloud which allows applications to communicate through firewalls. Since cloud-based
integration requires communication through different organizations, it is important to tunnel through
firewalls.
12.4.3 Mapping:
• Hotel and Restaurant websites show their locations. Provides customized directions to the end users.
• Mapping databases are offered as a cloud application. Some examples of such service providers are
Google Maps and Microsoft’s Virtual Earth. They allow the embedding of maps on web pages.
12.4.4 Payments:
• You can use services that allow credit cards or use PayPal.
12.4.5 Search:
• We can embed search options in a website.
• Microsoft’s Live Search allows applications to submit searches and then get the results back.
• Searching can also be limited to the organization, such as searching for a movie on a website with a
movie database. We can search for what’s stored in the company’s database as well as the Web.
20
13.1.1 Web Application Framework
• A framework reduces the overhead that is associated with web development. It provides a set of
libraries that are already written, saving time and energy for the developers.
• Common Gateway Interface: CGI allows external applications to interface with web servers.
13.1.2 AJAX
• AJAX stands for Asynchronous JavaScript and XML.
• It is a set of web development techniques that allow to create interactive web applications.
• AJAX allows applications to retrieve data asynchronously; that is, it is being done in the background,
so it does not interfere with the display and behavior of the data.
21
13.3 Web APIs
• An Application Programming Interface is a set of instructions for accessing a web-based program.
Software companies release their APIs so that developers can design products based on their services.
• APIs allow one program to speak with another without the user having to be involved. For example,
when you buy something at Amazon and enter your credit card information, Amazon sends this
information to a remote application that verifies whether it is correct or not.
• An API is similar to SaaS because developers don’t have to start from scratch every time they write
a program.
• An API is written as a series of XML messages.
22
14.1.2 Public Cloud and Infrastructure Services
Public Cloud Computing involves accessing resources through web services managed by third-party providers.
For example, we have Amazon EC2, which provides IaaS. These services can be accessed through web services,
such as SOAP and REST, AWS management console, or command-line.
EC2 provides hundreds of pre-made AMIs (Amazon Machine Images) with different OS and software.
23
14.2.2 VM Provisioning Process
1. First, select a server from the pool of avail-
able servers and an appropriate operating sys-
tem template.
2. Then, load the selected OS, drivers, middleware,
and the applications needed for the service.
3. Then, customize the machine (IP address and
gateway) and configure the network and storage
resources.
The steps involved in a live migration, including how the memory and virtual machine states are transferred
from host A to host B, are given below.
• Stage 0: Pre-Migration. Here, there is an active VM on physical host A. Another physical host is
selected for the migration (destination).
• Stage 1: Reservation. Here, a request is issued to transfer an OS from host A to host B. A container
is also initialized at host B.
• Stage 2: Iterative Pre-Copy. In the first iteration, all the pages are transferred from A to B. In
subsequent iterations, only the pages dirtied in the previous transfer are copied.
• Stage 3: Stop-and-Copy. Here, the OS instance at A is suspended, and the network traffic is
redirected to B. Also, any remaining pages are transferred. At the end of this state, there is a suspended
copy of the VM at both A and B.
• Stage 4: Commitment. Here, B tells A that it has received a consistent OS image. A responds to
this message as a commitment and discards the original VM. Host B becomes the primary host.
• Stage 5: Pre-Activation. Finally, the VM at host B is now activated.
24
14.3.2 Regular or Cold Migration
• Here, a powered-off virtual machine is migrated.
• Live migration requires shared storage for the virtual machines, but cold migration does not. Also, in
live migration, there are CPU compatibility checks, whereas in cold migration there are not.
• First, the configuration files, log files, and disks of the virtual machine are moved from the source to
the destination host’s storage area. Then, the virtual machine is registered with the new host. Then,
the virtual machine is deleted from the old host.
• They provide a public and simple remote interface for managing these resources.
• They use a pay-as-you-go cost model.
• They operate data centers large enough to provide unlimited capacity of resources to their clients.
25
• Reducing the overhead associated with using virtual machines.
There is also a problem of selecting and scheduling the computational resources. Currently, the VM-based
resource scheduling follows a static approach, where the resources are allocated greedily based on immediate
availability without considering future needs.
To efficiently schedule resources, the virtual infrastructure managers should take advantage of the VM’s
ability to suspend, resume, and migrate.
• On the other hand, when there is a finite capacity, we need a better solution. Reserving the resources
beforehand is not an optimal solution because it will cause the resources to be underutilized and it
makes it difficult to schedule other requests around this reservation.
26
• More complex scheduling policies are supported using the Haizea Lease Manager.
2. Resource Preparation:
• Here, the disk images of the VM are transferred to the target physical resource.
• In the boot process, the VM is contextualized; that is, it is customized to work in the specific
environment.
3. VM Creation:
• Here, the VM is booted by the resource hypervisor.
• The hypervisor is a software that creates and manages VMs on a physical resource.
4. VM Migration:
• A VM can be migrated to a more suitable resource, such as for optimization of power consumption.
5. VM Termination:
• Before a VM is terminated, OpenNebula transfers the VM’s disk images to a known location so
that the changes made to the VM can be used in the future if needed.
OpenNebula manages VM’s lifecycle in 3 different areas: virtualization, image management, and networking.
1. Virtualization:
• OpenNebula manages virtual machines by interfacing with the physical resource virtualization
technologies. It uses pluggable drivers to interact with these technologies.
• These drivers translate commands into a format that can be understood by virtualization tech-
nologies.
• When managing VMs, OpenNebula uses high-level commands, such as ”start VM” and ”stop
VM”. These commands are translated by the drivers so that they can be understood by the VM
managers.
• The advantage of separating the OpenNebula core from the virtualization technologies using a
driver-based architecture is that if we want to add any additional support for the VM managers,
we simply need to write a driver for it.
2. Image Management:
• Virtual machines have a set of virtual disks (images) that contain the OS and any additional
software that is required by the VM.
27
• Image Repository: It is a local (or remote) storage medium that contains the base images of
the VM. A base image is a template containing the OS and configurations and can be used to
create a new VM. It can be accessed from the OpenNebula front end.
• Virtual Machine Directory: It is a directory on the cluster node where the VM is running. It
contains deployment files needed by the hypervisor to boot the VM, the images being used and
saved, and checkpoints.
• A VM image goes through the following steps in its lifecycle:
(a) Preparation: Here, changes are made to the machine’s image so that it is ready to perform
its intended function. OpenNebula assumes that a VM’s images are prepared and placed in
the image repository.
(b) Cloning: Here, the image is taken from the image repository and placed in the VM directory
in the node where the VM is going to run. The original image is not taken; only a clone (copy)
of it is taken.
(c) Save / Remove: If the save qualifier is disabled, then once the VM is shut down, all of its
images and their changes will be discarded. On the other hand, if the qualifier is enabled,
then the images will be saved for later use.
3. Networking:
• Services that are deployed in the cloud require multiple inter-related virtual machines. Virtual
Application Networks (VANs) are used to link them.
• OpenNebula dynamically creates these VANs and tracks the MAC addresses that were leased to
the VM.
• See figure below. Here, there are two physical hosts, A and B. Each has 2 network interfaces, so
there are 2 physical networks. One physical network connects the hosts using a switch, and the
other one connects them to the Internet. There are 3 different VANs. One is mapped on top of
the public Internet network, which will give the VMs access to the Internet. The other two are
mapped on top of the private physical network and allow hosts A and B to communicate with
each other.
28
15 References
References
[1] Rajkumar Buyya, James Broberg, and Andrzej Goscinski. Cloud Computing Principles and Paradigms.
Wiley Publications, 2013.
[2] Ronald L. Krutz and Russell Dean Vines. Cloud Security: A Comprehensive Guide to Secure Cloud
Computing. Wiley Publications, Inc., 2010.
[3] Toby Velte, Anthony Velte, and Robert Elsenpeter. Cloud Computing: A Practical Approach. McGraw
Hill, 2017.
29