~openstackbook/openstackbook/cactus

2.1.4 by Anne Gentle
Added XML IDs so that each file name is unique and has a readable title
1
<?xml version="1.0" encoding="UTF-8"?><chapter xmlns:db="http://docbook.org/ns/docbook" xmlns="http://docbook.org/ns/docbook" xml:id="Introduction_to_OpenStack_and_its_components-d1e59" version="5.0" xml:base="Introduction.xml">
2
	<title>Introduction to OpenStack and Its Components</title>
3
	<section xml:id="Cloud_Computing-d1e64">
2 by Murthyraju Manthena
Added docbook files and modified images
4
		<title>Cloud Computing</title>
5
		<para>Cloud computing is a computing model, where resources such as computing power, storage, network and software are abstracted and provided as services on the Internet in a remotely accessible fashion. Billing models for these services are generally similar to the ones adopted for public utilities. On-demand availability, ease of provisioning, dynamic and virtually infinite scalability are some of the key attributes of cloud computing.</para>
6
		<para>An infrastructure setup using the cloud computing model is generally referred to as the "cloud". The following are the broad categories of services available on the cloud:</para>
7
		<itemizedlist>
7 by Murthyraju Manthena
typo fixes and OpenStack setup image modifications etc.
8
			<listitem><para>Infrastructure as a Service (IaaS)</para></listitem>
9
			<listitem><para>Platform as a Service (PaaS)</para></listitem>
10
			<listitem><para>Software as a Service (SaaS)</para></listitem>
2 by Murthyraju Manthena
Added docbook files and modified images
11
		</itemizedlist>
12
		<para>Amazon Web Services (AWS) is one of the major players providing IAAS. They have two popular services - Elastic Compute Cloud (EC2) and Simple Storage Service (S3). These services are available through web services.</para>
13
	</section>
2.1.4 by Anne Gentle
Added XML IDs so that each file name is unique and has a readable title
14
	<section xml:id="OpenStack-d1e94">
2 by Murthyraju Manthena
Added docbook files and modified images
15
		<title>OpenStack</title>
7 by Murthyraju Manthena
typo fixes and OpenStack setup image modifications etc.
16
		<para>OpenStack is a collection of open source software projects that enterprises/service providers can use to setup and run their cloud compute and storage infrastructure. Rackspace and NASA are the key initial contributors to the stack. Rackspace contributed their "Cloud Files" platform to power the Object Storage part of the OpenStack, while NASA contributed their "Nebula" code to power the Compute part.  OpenStack consortium has managed to have more than 100 members including Canonical, Dell, Citrix etc. in less than a year.</para>
2 by Murthyraju Manthena
Added docbook files and modified images
17
		<para>OpenStack makes its services available through Amazon EC2/S3 compatible APIs and hence the client tools written for AWS can be used with OpenStack as well.</para>
18
		<para>There are 3 main service families under OpenStack</para>
19
		<itemizedlist>
20
			<listitem><para>Compute Infrastructure (Nova)</para></listitem>
21
			<listitem><para>Storage Infrastructure (Swift)</para></listitem>
22
			<listitem><para>Imaging Service (Glance)</para></listitem>
23
		</itemizedlist>
2.1.4 by Anne Gentle
Added XML IDs so that each file name is unique and has a readable title
24
<section xml:id="Open_Stack_Compute_Infrastructure_Nova_-d1e124">
2 by Murthyraju Manthena
Added docbook files and modified images
25
		<title>Open Stack Compute Infrastructure ( Nova )</title>
26
		<para>Nova is the underlying cloud computing fabric controller for the OpenStack cloud. All activities needed to support the life cycle of instances within the OpenStack cloud are handled by Nova. It manages all the compute resources, networking, authorization, and scalability needs of the OpenStack cloud. Nova is a management platform and does not provide any virtualization capabilities by itself; instead, it uses libvirt APIs to interact with the supported hypervisors. Nova exposes its capabilities through a web services API that is compatible with that of EC2 of Amazon Web Services.</para>
4.1.1 by Anne Gentle
Changing pom.xml and the images to have PDF and HTML scaling
27
    <section xml:id="Functions_and_Features-d1e132">
2 by Murthyraju Manthena
Added docbook files and modified images
28
		<title>Functions and Features:</title>
29
		<itemizedlist>
30
			<listitem><para>Instance life cycle management</para></listitem>
31
			<listitem><para>Management of compute resources</para></listitem>
32
			<listitem><para>Networking and Authorization</para></listitem>
33
			<listitem><para>REST-based API</para></listitem>
34
			<listitem><para>Asynchronous eventually consistent communication</para></listitem>
10 by Kiran Murari
minor edits after docblitz feedback
35
			<listitem><para>Hypervisor agnostic : support for Xen, XenServer/XCP, KVM, UML, VMware vSphere and Hyper-V</para></listitem>
2 by Murthyraju Manthena
Added docbook files and modified images
36
		</itemizedlist>
37
    </section>
2.1.4 by Anne Gentle
Added XML IDs so that each file name is unique and has a readable title
38
<section xml:id="Components_of_OpenStack-Compute-d1e166">
39
		<title>Components of OpenStack Compute</title>
2 by Murthyraju Manthena
Added docbook files and modified images
40
		<para>Nova Cloud Fabric is composed of the following major components:</para>
41
		<itemizedlist>
42
			<listitem><para>API Server ( nova-api )</para></listitem>
43
			<listitem><para>Message Queue ( rabbit-mq server )</para></listitem>
44
			<listitem><para>Compute Workers ( nova-compute )</para></listitem>
45
			<listitem><para>Network Controller ( nova-network )</para></listitem>
46
			<listitem><para>Volume Worker ( nova-volume )</para></listitem>
47
			<listitem><para>Scheduler ( nova-scheduler )</para></listitem>
48
		</itemizedlist>
49
<para>
50
<mediaobject>
4.1.1 by Anne Gentle
Changing pom.xml and the images to have PDF and HTML scaling
51
		<imageobject role="fo">
52
			<imagedata fileref="images/Arch.png"
53
				format="PNG" scale="60"/>
54
		</imageobject>
55
		<imageobject role="html">
56
			<imagedata fileref="images/Archhtml.png"
57
				format="PNG" />
58
		</imageobject>
2 by Murthyraju Manthena
Added docbook files and modified images
59
</mediaobject>
60
</para>
2.1.4 by Anne Gentle
Added XML IDs so that each file name is unique and has a readable title
61
<section xml:id="API_Server_nova-api_-d1e213">
2 by Murthyraju Manthena
Added docbook files and modified images
62
		<title>API Server ( nova-api )</title>
7 by Murthyraju Manthena
typo fixes and OpenStack setup image modifications etc.
63
		<para>The API Server provides an interface to the outside world to interact with the cloud infrastructure. API server is the only component that the outside world uses to manage the infrastructure. The management is done through web services calls using EC2 API. The API Server then, in turn, communicates with the relevant components of the cloud infrastructure through the Message Queue. Also there is an OpenStack API as well now, as an alternative to the EC2 API.</para>
2 by Murthyraju Manthena
Added docbook files and modified images
64
	</section>
2.1.4 by Anne Gentle
Added XML IDs so that each file name is unique and has a readable title
65
    <section xml:id="Message_Queue_Rabbit_MQ_Server_-d1e223">
2 by Murthyraju Manthena
Added docbook files and modified images
66
		<title>Message Queue ( Rabbit MQ Server )</title>
7 by Murthyraju Manthena
typo fixes and OpenStack setup image modifications etc.
67
        <para>The OpenStack Cloud Controller communicates with other nova components such as the Scheduler, Network Controller, and Volume Controller via AMQP(Advanced Message Queue Protocol). Nova uses asynchronous calls for request response, with a call-back that gets triggered once a response is received. Since asynchronous communication is used, none of the end points get stuck for long in a waiting state. This is especially true since many actions expected by the API calls such as launching an instance or uploading an image are time consuming.</para>
2 by Murthyraju Manthena
Added docbook files and modified images
68
    </section>
2.1.4 by Anne Gentle
Added XML IDs so that each file name is unique and has a readable title
69
    <section xml:id="Compute_Worker_nova-compute_-d1e232">
2 by Murthyraju Manthena
Added docbook files and modified images
70
		<title>Compute Worker ( nova-compute )</title>
71
		<para>Compute workers deal with instance management life cycle. they receive the requests for life cycle management via the Message Queue and carry out operations. There are several Compute Workers in a typical production cloud deployment. An instance is deployed on any of the available compute worker based on the scheduling algorithm used.</para>
72
    </section>
2.1.4 by Anne Gentle
Added XML IDs so that each file name is unique and has a readable title
73
    <section xml:id="Network_Controller_nova-network_-d1e241">
2 by Murthyraju Manthena
Added docbook files and modified images
74
		<title>Network Controller ( nova-network )</title>
75
		<para>The Network Controller deals with the network configuration of host machines. It does operations like allocating IP addresses, configuring VLANs for projects, implementing security groups and configuring networks for compute nodes.</para>
76
    </section>
2.1.4 by Anne Gentle
Added XML IDs so that each file name is unique and has a readable title
77
    <section xml:id="Volume_Workers_nova-volume_-d1e250">
2 by Murthyraju Manthena
Added docbook files and modified images
78
		<title>Volume Workers ( nova-volume )</title>
7 by Murthyraju Manthena
typo fixes and OpenStack setup image modifications etc.
79
		<para>Volume workers are used for the management of LVM-based instance volumes. Volume Workers perform volume related functions such as creation, deletion, attaching a volume to an instance, and detaching a volume from an instance. Volumes provide a way of providing persistent storage for use by instances, as the main disk attached to an instance is non-persistent and any changes made to it are lost when the volume is detached or the instance is terminated. When a volume is detached from an instance or when an instance, to which the volume is attached, is terminated, it retains the data that was stored on it when it was attached to an instance earlier. This data can be accessed by reattaching the volume to the same instance or by attaching it to another instances.</para>
2 by Murthyraju Manthena
Added docbook files and modified images
80
		<para>Any valuable data that gets accumulated during the life cycle of an instance should be written to a volume, so that it can be accessed later. This typically applies to the storage needs of database servers etc.</para>
81
    </section>
2.1.4 by Anne Gentle
Added XML IDs so that each file name is unique and has a readable title
82
    <section xml:id="Scheduler_nova-scheduler_-d1e262">
2 by Murthyraju Manthena
Added docbook files and modified images
83
        <title>Scheduler (nova-scheduler)</title>
84
        <para>The scheduler maps the nova-API calls to the appropriate openstack components. It runs as a daemon named nova-schedule and picks up a compute/network/volume server from a pool of available resources depending upon the scheduling algorithm in place. A scheduler can base its decisions on various factors such as load, memory, physical distance of the availability zone, CPU architecture, etc. The nova scheduler implements a pluggable architecture.</para>
2.1.1 by Anne Gentle
Spell check and changes to xi:include code so that it builds within OpenStack maven environment
85
        <para>Currently the nova-scheduler implements a few basic scheduling algorithms:</para>
2 by Murthyraju Manthena
Added docbook files and modified images
86
    <itemizedlist>
2.1.1 by Anne Gentle
Spell check and changes to xi:include code so that it builds within OpenStack maven environment
87
        <listitem><para>chance: In this method, a compute host is chosen randomly across availability zones.</para></listitem>
88
        <listitem><para>availability zone: Similar to chance, but the compute host is chosen randomly from within a specified availability zone.</para></listitem>
89
        <listitem><para>simple: In this method, hosts whose load is least are chosen to run the instance. The load information may be fetched from a load balancer.</para></listitem>
2 by Murthyraju Manthena
Added docbook files and modified images
90
    </itemizedlist>
91
</section>
92
</section>
93
</section>
2.1.4 by Anne Gentle
Added XML IDs so that each file name is unique and has a readable title
94
<section xml:id="OpenStack_Storage_Infrastructure_Swift_-d1e291">
2 by Murthyraju Manthena
Added docbook files and modified images
95
		<title>OpenStack Storage Infrastructure ( Swift )</title>
7 by Murthyraju Manthena
typo fixes and OpenStack setup image modifications etc.
96
		<para>Swift is an object store that stores a large number of objects distributed across commodity hardware. Swift has built-in redundancy and failover management and features like backing up or archiving data, serving graphics or videos. It is scalable to multiple petabytes and to billions of objects. Swift provides elasticity and flexibility of cloud-based storage for your web applications.</para>
2.1.4 by Anne Gentle
Added XML IDs so that each file name is unique and has a readable title
97
	<section xml:id="Functions_and_Features-d1e299">
2 by Murthyraju Manthena
Added docbook files and modified images
98
		<title>Functions and Features</title>
99
		<itemizedlist>
100
			<listitem><para>Storing the machine images</para></listitem>
101
			<listitem><para>Working as an independent data container</para></listitem>
2.1.1 by Anne Gentle
Spell check and changes to xi:include code so that it builds within OpenStack maven environment
102
			<listitem><para>Redundancy and failover</para></listitem>
103
			<listitem><para>Backup and archival</para></listitem>
2 by Murthyraju Manthena
Added docbook files and modified images
104
			<listitem><para>Extremely scalable</para></listitem>
105
		</itemizedlist>
106
    </section>
107
 </section>
2.1.4 by Anne Gentle
Added XML IDs so that each file name is unique and has a readable title
108
    <section xml:id="OpenStack_Imaging_Service_Glance_-d1e329">
2 by Murthyraju Manthena
Added docbook files and modified images
109
		<title>OpenStack Imaging Service ( Glance )</title>
110
		<para>OpenStack Imaging Service is a lookup and retrieval system for virtual machine images. It can be configured to use any one of the following 3 storage backends:</para>
111
		<itemizedlist>
112
			<listitem><para>OpenStack Object Store to store images</para></listitem>
113
			<listitem><para>S3 storage directly</para></listitem>
114
			<listitem><para>S3 storage with Object Store as the intermediate for S3 access.</para></listitem>
115
		</itemizedlist>
2.1.4 by Anne Gentle
Added XML IDs so that each file name is unique and has a readable title
116
        <section xml:id="Functions_and_Features_Glance_-d1e352">
2.1.1 by Anne Gentle
Spell check and changes to xi:include code so that it builds within OpenStack maven environment
117
        <title>Functions and Features ( Glance )</title>
2 by Murthyraju Manthena
Added docbook files and modified images
118
		<itemizedlist>
119
			<listitem><para>Provides imaging service</para></listitem>
120
		</itemizedlist>
121
    </section>
2.1.4 by Anne Gentle
Added XML IDs so that each file name is unique and has a readable title
122
    <section xml:id="Components_of_OpenStack_Imaging_Service_Glance_-d1e365">
2 by Murthyraju Manthena
Added docbook files and modified images
123
		<title>Components of OpenStack Imaging Service ( Glance )</title>
124
		<itemizedlist>
125
			<listitem><para>Glance-control</para></listitem>
126
			<listitem><para>Glance-registry</para></listitem>
127
		</itemizedlist>
128
    </section>
129
    </section>
130
</section>
7 by Murthyraju Manthena
typo fixes and OpenStack setup image modifications etc.
131
</chapter>