openstack-manuals/doc/common/section_getstart_compute.xml
Darren 3981735acd Edited Services sections of Admin Guide
Edit wording; changed term/description lists to variable lists as per writing
conventions

backport: none
Partial-Bug: #1251195

Change-Id: I3b7f3fedafa79ab64f75260fcd3c5daa7cbb5e34
2014-05-23 12:55:20 +10:00

196 lines
10 KiB
XML

<section xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
xml:id="compute-service">
<title>OpenStack Compute</title>
<para>OpenStack Compute is used to host and manage cloud computing systems and
is a major part of an infrastructure-as-a-service (IaaS) system. The main
modules are implemented in Python.</para>
<para>OpenStack Compute interacts with OpenStack Identity for
authentication, OpenStack Image Service for images, and OpenStack dashboard
for the user and administrative interface. Access to images is limited
by project and by user; quotas are limited per project (for example, the
number of instances). OpenStack Compute can scale horizontally on standard
hardware, and download images to launch instances.</para>
<para>OpenStack Compute consists of the following areas and their
components:</para>
<variablelist><title>API</title>
<varlistentry>
<term><systemitem class="service">nova-api service</systemitem></term>
<listitem><para>Accepts and responds to end user compute API calls.
Supports the OpenStack Compute API, the Amazon EC2 API, and a special
Admin API for privileged users to perform administrative actions. It
enforces some policies and initiates most orchestration activities,
such as running an instance.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><systemitem class="service">nova-api-metadata</systemitem>
service</term>
<listitem><para>Accepts metadata requests from instances. The
<systemitem class="service">nova-api-metadata</systemitem>
service is generally used when you run in multi-host mode
with <systemitem class="service">nova-network</systemitem>
installations. For details, see <link
xlink:href="http://docs.openstack.org/admin-guide-cloud/content/section_metadata-service.html"
>Metadata service</link> in the <citetitle>Cloud
Administrator Guide</citetitle>.</para>
<para>On Debian systems, it is included in the <systemitem
class="service">nova-api</systemitem> package, and can be
selected through <package>debconf</package>.</para></listitem>
</varlistentry>
</variablelist>
<variablelist>
<title>Compute core</title>
<varlistentry>
<term><systemitem class="service">nova-compute</systemitem>
process</term> <listitem><para>A worker daemon that creates and
terminates virtual machine instances through hypervisor APIs. For
example, XenAPI for XenServer/XCP, libvirt for KVM or QEMU and
VMwareAPI for VMware. Processing is fairly complex but fundamentally it
accepts actions from the queue and performs a series of system
commands, like launching a KVM instance, whilst updating its state in
the database.</para></listitem>
</varlistentry>
<varlistentry>
<term><systemitem class="service">nova-scheduler</systemitem>
process</term>
<listitem><para>Conceptually the simplest piece of code in OpenStack
Compute. It takes a virtual machine instance request from the queue and
determines on which compute server host it will run.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><systemitem class="service">nova-conductor</systemitem>
module</term><listitem><para>Mediates interactions between <systemitem
class="service">nova-compute</systemitem> and the database.
It eliminates direct accesses to the cloud database made
by <systemitem class="service">nova-compute</systemitem>. The
<systemitem class="service">nova-conductor</systemitem>
module scales horizontally. However, do not deploy it on any
nodes where <systemitem class="service"
>nova-compute</systemitem> runs. For more information, see
<link
xlink:href="http://russellbryantnet.wordpress.com/2012/11/19/a-new-nova-service-nova-conductor/"
>A new Nova service: nova-conductor</link>.</para>
</listitem>
</varlistentry>
</variablelist>
<variablelist><title>Networking for VMs</title>
<varlistentry><term><systemitem class="service">nova-network</systemitem>
worker daemon</term>
<listitem><para>Similar to <systemitem
class="service">nova-compute</systemitem>, it accepts networking tasks from
the queue and performs tasks to manipulate the network, such
as setting up bridging interfaces or changing iptables rules.
This functionality is being migrated to OpenStack Networking.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><systemitem class="service">nova-dhcpbridge</systemitem>
script</term>
<listitem><para>The IP address leases and is recorded in the
database using the dnsmasq <literal>dhcp-script</literal>
facility. This functionality is being migrated to OpenStack
Networkin which provides a different script.</para></listitem>
</varlistentry>
</variablelist>
<?hard-pagebreak?>
<variablelist><title>Console interface</title>
<varlistentry>
<term><systemitem class="service">nova-consoleauth</systemitem>
daemon</term><listitem><para>Authorizes tokens for users that console
proxies provide. See <systemitem class="service"
>nova-novncproxy</systemitem> and <systemitem
class="service">nova-xvpnvcproxy</systemitem>. This service
must be running for console proxies to work. Many proxies of
either type can be run against a single <systemitem
class="service">nova-consoleauth</systemitem> service in a
cluster configuration. For information, see <link
xlink:href="http://docs.openstack.org/trunk/config-reference/content/about-nova-consoleauth.html"
>About nova-consoleauth</link>.</para></listitem>
</varlistentry>
<varlistentry>
<term><systemitem class="service">nova-novncproxy</systemitem>
daemon</term>
<listitem><para>Provides a proxy for accessing running instances through
a VNC connection. Supports browser-based novnc
clients.</para></listitem>
</varlistentry>
<varlistentry>
<term><systemitem class="service">nova-xvpnvncproxy</systemitem>
daemon</term>
<listitem><para>A proxy for accessing running instances
through a VNC connection. It supports a Java client specifically
designed for OpenStack.</para></listitem>
</varlistentry>
<varlistentry>
<term><systemitem class="service">nova-cert</systemitem> daemon</term>
<listitem><para>x509 certificates.</para></listitem>
</varlistentry>
</variablelist>
<para os="debian">In Debian, a unique
<package>nova-consoleproxy</package> package provides the
<package>nova-novncproxy</package>,
<package>nova-spicehtml5proxy</package>, and
<package>nova-xvpvncproxy</package> packages. To select
packages, edit the
<filename>/etc/default/nova-consoleproxy</filename> file or use
the <package>debconf</package> interface. You can also manually
edit the <filename>/etc/default/nova-consoleproxy</filename> file,
and stop and start the console daemons.</para>
<variablelist> <title>Image management (EC2 scenario)</title>
<varlistentry>
<term><systemitem class="service">nova-objectstore</systemitem>
daemon</term> <listitem><para>A S3 interface for registering images
with the OpenStack Image Service. It is mainly used for installations
that must support euca2ools. The euca2ools tools talk to <systemitem
class="service">nova-objectstore</systemitem> in <emphasis
role="italic">S3 language</emphasis>, and <systemitem
class="service">nova-objectstore</systemitem> translates S3
requests into Image service requests.</para></listitem>
</varlistentry>
<varlistentry>
<term>euca2ools client</term>
<listitem><para>A set of command-line interpreter commands for managing
cloud resources. Although it is not an OpenStack module, you can
configure <systemitem class="service">nova-api</systemitem> to support
this EC2 interface. For more information, see the <link
xlink:href="https://www.eucalyptus.com/docs/eucalyptus/3.4/index.html"
>Eucalyptus 3.4 Documentation</link>.</para></listitem>
</varlistentry>
</variablelist>
<variablelist><title>Command-line clients and other interfaces</title>
<varlistentry><term>nova client</term>
<listitem><para>Allows users to submit commands as a tenant administrator
or end user.</para></listitem>
</varlistentry>
<varlistentry>
<term>nova-manage client</term>
<listitem><para>Enables cloud administrators to submit
commands.</para></listitem>
</varlistentry>
</variablelist>
<variablelist><title>Other components</title>
<varlistentry><term>The queue</term><listitem><para>A central hub for
passing messages between daemons. It is usually implemented with <link
xlink:href="http://www.rabbitmq.com/">RabbitMQ</link>, but
could be any AMQP message queue, such as <link
xlink:href="http://qpid.apache.org/">Apache Qpid</link> or
<link xlink:href="http://www.zeromq.org/">Zero
MQ</link>.</para></listitem>
</varlistentry>
<varlistentry><term>SQL database</term>
<listitem><para>Stores most build-time and runtime states for a cloud
infrastructure. It includes instance types that are available for use,
instances in use, available networks, and projects. Theoretically,
OpenStack Compute can support any database that is supported by SQL-Alchemy.
Note the databases which are widely used are SQLite3 databases (for test and
development work), MySQL, and PostgreSQL.</para></listitem>
</varlistentry>
</variablelist>
<para>OpenStack Compute interacts with OpenStack Identity for
authentication; OpenStack Image Service for images; and the OpenStack
dashboard for a web interface.</para>
</section>