~sateesh-chodapuneedi/openstack-manuals/working

26 by Anne Gentle
Rearranging source
1
<?xml version="1.0" encoding="UTF-8"?>
2
<chapter xmlns="http://docbook.org/ns/docbook"
3
    xmlns:xi="http://www.w3.org/2001/XInclude"
4
    xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0">
31 by Anne Gentle
Working on processing directives
5
    <?dbhtml filename="ch_introduction-to-openstack-compute.html" ?>
26 by Anne Gentle
Rearranging source
6
    <title>Introduction to OpenStack Compute</title>
7
    <para>OpenStack Compute gives you a tool to orchestrate a cloud, including running instances,
8
        managing networks, and controlling access to the cloud through users and projects. The
51 by Anne Gentle
minor edits
9
        underlying open source project's name is Nova, and it provides the software that can control
10
        an Infrastructure as a Service (IaaS) cloud computing platform. It is similar in scope to
11
        Amazon EC2 and Rackspace Cloud Servers. OpenStack Compute does not include any
26 by Anne Gentle
Rearranging source
12
        virtualization software; rather it defines drivers that interact with underlying
13
        virtualization mechanisms that run on your host operating system, and exposes functionality
14
        over a web-based API.</para>
56 by Anne Gentle
Adding hypervisor doc, first pass
15
    
16
    <section>
17
        <?dbhtml filename="users-and-projects.html" ?>
18
        <title>Hypervisors</title>
19
    
20
    <para>The process for selecting a hypervisor usually means prioritizing and making 
21
        decisions based on budget and resource constraints as well as the inevitable 
22
        list of supported features and required technical specifications. 
57 by Anne Gentle
Merged in live migration documentation
23
        With OpenStack Compute, you can orchestrate clouds using multiple hypervisors in different zones. 
24
        The types of virtualization standards that may be used with Compute include:</para>
56 by Anne Gentle
Adding hypervisor doc, first pass
25
    <itemizedlist><listitem><para>KVM</para></listitem>
26
    <listitem><para>UML</para></listitem>
27
    <listitem><para>XEN</para></listitem>
28
    <listitem><para>Hyper-V</para></listitem>
29
    <listitem><para>QEMU</para></listitem></itemizedlist>
30
    </section>
31 by Anne Gentle
Working on processing directives
31
    <section><?dbhtml filename="users-and-projects.html" ?>
26 by Anne Gentle
Rearranging source
32
        <title>Users and Projects</title>
33
        <para>The OpenStack Compute system is designed to be used by many different cloud computing
34
            consumers or customers, using standard role-based access assignments. Roles control the
35
            actions that a user is allowed to perform. For example, a user cannot allocate a public
36
            IP without the netadmin or admin role. A user's access to particular images is limited
37
            by project, but the access key and secret key are assigned per user. Key pairs granting
38
            access to an instance are enabled per user, but quotas to control resource consumption
39
            across available hardware resources are per project. </para>
40
        
41
        <para>OpenStack Compute uses a rights management system that employs a Role-Based Access
42
            Control (RBAC) model and supports the following five roles:</para>
43
       <itemizedlist> 
44
        <listitem><para>Cloud Administrator (admin): Users of this class enjoy complete system access.</para></listitem>
45
        <listitem><para>IT Security (itsec): This role is limited to IT security personnel. It permits role holders to
46
                    quarantine instances.</para></listitem>
47
        <listitem><para>Project Manager (projectmanager): The default for project owners, this role affords users the
48
                    ability to add other users to a project, interact with project images, and
49
                    launch and terminate instances.</para></listitem>
50
        <listitem><para>Network Administrator (netadmin): Users with this role are permitted to allocate and assign
51
                    publicly accessible IP addresses as well as create and modify firewall
52
                    rules.</para></listitem>
53
        <listitem><para>Developer (developer): This is a general purpose role that is assigned to users by
54
                    default.</para></listitem></itemizedlist>
55
<para>While the original EC2 API supports users, OpenStack Compute adds the concept of projects.
56
            Projects are isolated resource containers forming the principal organizational structure
57
            within Nova. They consist of a separate VLAN, volumes, instances, images, keys, and
58
            users. A user can specify which project he or she wishes to use by appending :project_id
59
            to his or her access key. If no project is specified in the API request, Compute
60
            attempts to use a project with the same id as the user. </para>
61
        <para>For projects, quota controls are available to limit the: <itemizedlist>
62
                <listitem>
63
                    <para>Number of volumes which may be created</para>
64
                </listitem>
65
                <listitem>
66
                    <para>Total size of all volumes within a project as measured in GB</para>
67
                </listitem>
68
                <listitem>
69
                    <para>Number of instances which may be launched</para>
70
                </listitem>
71
                <listitem>
72
                    <para>Number of processor cores which may be allocated</para>
73
                </listitem>
74
                <listitem>
75
                    <para>Publicly accessible IP addresses</para>
76
                </listitem>
77
            </itemizedlist></para>
78
        
31 by Anne Gentle
Working on processing directives
79
    </section><section><?dbhtml filename="images-and-instances.html" ?>
26 by Anne Gentle
Rearranging source
80
            <title>Images and Instances</title>
81
        
82
        <para>An image is a file containing information about a virtual disk that completely
83
            replicates all information about a working computer at a point in time including
84
            operating system information and file system information. Compute can use certificate
85
            management for decrypting bundled images. For now, Compute relies on using the euca2ools
86
            command-line tools distributed by the Eucalyptus Team for adding, bundling, and deleting
87
            images. </para>
88
        <para>There are two methods for managing images. Images can be served through the OpenStack
89
            Imaging Service, a project that is named Glance, or use the nova-objectstore service.
90
            With an OpenStack Imaging Service server in place, the imaging service fetches the image
91
            on to the host machine and then OpenStack Compute boots the image from the host machine.
92
            To place images into the service, you would use a ReST interface to stream them, and the
93
            service, in turn, streams that into a back end which could be S3, OpenStack Object
94
            Storage (which can use an S3), or the local file system on the server where OpenStack
95
            Imaging Service is installed.</para>
96
        <para>An instance is a running virtual machine within the cloud. An instance has a life
97
            cycle that is controlled by OpenStack Compute. Compute creates the instances and it is
98
            responsible for building a disk image, launching it, reporting the state, attaching
56 by Anne Gentle
Adding hypervisor doc, first pass
99
            persistent storage, and terminating it. </para>
31 by Anne Gentle
Working on processing directives
100
    </section><section>
101
        <?dbhtml filename="system-architecture.html" ?>
56 by Anne Gentle
Adding hypervisor doc, first pass
102
        <title>System Architecture</title><para>OpenStack Compute consists of seven main components, with the cloud controller component
103
            representing the global state and interacting with all other components. An API Server
104
            acts as the web services front end for the cloud controller. The compute controller
105
            provides compute server resources, and the Object Store component provides storage
106
            services. An auth manager provides authentication and authorization services. A volume
107
            controller provides fast and permanent block-level storage for the compute servers. A
108
            network controller provides virtual networks to enable compute servers to interact with
109
            each other and with the public network. A scheduler selects the most suitable compute
110
            controller to host an instance. </para><para>OpenStack Compute is built on a shared-nothing, messaging-based architecture. You can run all
26 by Anne Gentle
Rearranging source
111
            of the major components on multiple servers including a compute controller, volume
112
            controller, network controller, and object store. A cloud controller communicates with
113
            the internal object store via HTTP (Hyper Text Transfer Protocol), but it communicates
114
            with a scheduler, network controller, and volume controller via AMQP (Advanced Message
115
            Queue Protocol). To avoid blocking each component while waiting for a response,
116
            OpenStack Compute uses asynchronous calls, with a call-back that gets triggered when a
117
            response is received.</para>
118
        
31 by Anne Gentle
Working on processing directives
119
        <para>To achieve the shared-nothing property with multiple copies of the same component, OpenStack Compute keeps all the cloud system state in a distributed data store. Updates to system state are written into this store, using atomic transactions when required. Requests for system state are read out of this store. In limited cases, the read results are cached within controllers for short periods of time (for example, the current list of system users.)</para></section><section>
120
            <?dbhtml filename="storage-and-openstack-compute.html" ?>
121
            <title>Storage and OpenStack Compute</title><para> A ‘volume’ is a detachable block storage device. You can think of it as a USB hard drive. It
26 by Anne Gentle
Rearranging source
122
            can only be attached to one instance at a time, so it does not work like a SAN. If you
123
            wish to expose the same volume to multiple instances, you will have to use an NFS or
124
            SAMBA share from an existing instance. </para><para>
125
            Every instance larger than m1.tiny starts with some local storage (up to 160GB for m1.xlarge). This storage is currently the second partition on the root drive.
126
        </para></section></chapter>