5dd620d59a
I updated the text to mention optional network interfaces and networks present in the improved diagrams. I also mentioned the progression toward use of automation tools for production environments. Change-Id: I4546662b9d9602343f69b1f7d1a6f2092b0e403e Implements: blueprint installation-guide-improvements backport: juno
259 lines
13 KiB
XML
259 lines
13 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!DOCTYPE chapter [
|
|
<!ENTITY % openstack SYSTEM "../common/entities/openstack.ent">
|
|
%openstack;
|
|
]>
|
|
<chapter 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="ch_overview">
|
|
<?dbhtml stop-chunking?>
|
|
<title>Architecture</title>
|
|
<section xml:id="architecture_overview">
|
|
<title>Overview</title>
|
|
<para>The <glossterm>OpenStack</glossterm> project is an open source cloud
|
|
computing platform that supports all types of cloud environments. The
|
|
project aims for simple implementation, massive scalability, and a rich
|
|
set of features. Cloud computing experts from around the world
|
|
contribute to the project.</para>
|
|
<para>OpenStack provides an Infrastructure-as-a-Service
|
|
(<glossterm>IaaS</glossterm>) solution through a variety of complemental
|
|
services. Each service offers an application programming interface
|
|
(<glossterm>API</glossterm>) that facilitates this integration. The
|
|
following table provides a list of OpenStack services:</para>
|
|
<xi:include href="../common/ch_getstart.xml"
|
|
xpointer="element(table1)"/>
|
|
<para>This guide describes how to deploy these services in a functional
|
|
test environment and, by example, teaches you how to build a production
|
|
environment. Realistically, you would use automation tools such as
|
|
Ansible, Chef, and Puppet to deploy and manage a production
|
|
environment.</para>
|
|
</section>
|
|
<section xml:id="architecture_conceptual-architecture">
|
|
<title>Conceptual architecture</title>
|
|
<para>Launching a virtual machine or instance involves many interactions
|
|
among several services. The following diagram provides the conceptual
|
|
architecture of a typical OpenStack environment.</para>
|
|
<figure xml:id="conceptual-architecture">
|
|
<title>Conceptual architecture</title>
|
|
<mediaobject>
|
|
<imageobject>
|
|
<imagedata contentwidth="6in"
|
|
fileref="../common/figures/openstack_havana_conceptual_arch.png"/>
|
|
</imageobject>
|
|
</mediaobject>
|
|
</figure>
|
|
</section>
|
|
<section xml:id="architecture_example-architectures">
|
|
<title>Example architectures</title>
|
|
<para>OpenStack is highly configurable to meet different needs with various
|
|
compute, networking, and storage options. This guide enables you to
|
|
choose your own OpenStack adventure using a combination of core and
|
|
optional services. This guide uses the following example
|
|
architectures:</para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>Three-node architecture with OpenStack Networking
|
|
(neutron) and optional nodes for Block Storage and Object
|
|
Storage services.</para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>The
|
|
<glossterm baseform="cloud controller node"
|
|
>controller node</glossterm> runs the Identity service, Image
|
|
Service, management portions of Compute and Networking,
|
|
Networking plug-in, and the dashboard. It also includes
|
|
supporting services such as a SQL database,
|
|
<glossterm>message queue</glossterm>, and
|
|
<glossterm>Network Time Protocol (NTP)</glossterm>.</para>
|
|
<para>Optionally, the controller node runs portions of
|
|
Block Storage, Object Storage, Orchestration, Telemetry,
|
|
Database, and Data Processing services. These
|
|
components provide additional features for your
|
|
environment.</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>The network node runs the Networking plug-in and
|
|
several agents that provision tenant networks and provide
|
|
switching, routing,
|
|
<glossterm baseform="Network Address Translation (NAT)"
|
|
>NAT</glossterm>, and <glossterm>DHCP</glossterm> services.
|
|
This node also handles external (Internet) connectivity for
|
|
tenant virtual machine instances.</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>The <glossterm>compute node</glossterm> runs the
|
|
<glossterm>hypervisor</glossterm> portion of Compute
|
|
that operates <glossterm>tenant</glossterm>
|
|
<glossterm baseform="virtual machine (VM)">virtual machines</glossterm>
|
|
or instances. By default, Compute uses
|
|
<glossterm baseform="kernel-based VM (KVM)">KVM</glossterm>
|
|
as the <glossterm>hypervisor</glossterm>. The compute node
|
|
also runs the Networking plug-in and an agent that connect
|
|
tenant networks to instances and provide firewalling
|
|
(<glossterm baseform="security group"
|
|
>security groups</glossterm>) services. You can run more
|
|
than one compute node.</para>
|
|
<para>Optionally, the compute node runs a Telemetry
|
|
agent to collect metrics. Also, it can contain a third
|
|
network interface on a separate storage network to improve
|
|
performance of storage services.</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>The optional Block Storage node contains the disks that
|
|
the Block Storage service provisions for tenant virtual machine
|
|
instances. You can run more than one of these nodes.</para>
|
|
<para>Optionally, the Block Storage node runs a Telemetry
|
|
agent to collect metrics. Also, it can contain a second
|
|
network interface on a separate storage network to improve
|
|
performance of storage services.</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>The optional Object Storage nodes contain the disks that
|
|
the Object Storage service uses for storing accounts,
|
|
containers, and objects. You can run more than two of these
|
|
nodes. However, the minimal architecture example requires
|
|
two nodes.</para>
|
|
<para>Optionally, these nodes can contain a second network
|
|
interface on a separate storage network to improve
|
|
performance of storage services.</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
<note>
|
|
<para>When you implement this architecture, skip
|
|
<xref linkend="section_nova-networking" /> in
|
|
<xref linkend="ch_networking" />. Optional services might
|
|
require additional nodes or additional resources on existing
|
|
nodes.</para>
|
|
</note>
|
|
<figure xml:id="example-architecture-with-neutron-networking-hw">
|
|
<title>Minimal architecture example with OpenStack Networking
|
|
(neutron)—Hardware requirements</title>
|
|
<mediaobject>
|
|
<imageobject>
|
|
<imagedata contentwidth="6in"
|
|
fileref="../common/figures/installguidearch-neutron-hw.png"/>
|
|
</imageobject>
|
|
</mediaobject>
|
|
</figure>
|
|
<figure xml:id="example-architecture-with-neutron-networking-networks">
|
|
<title>Minimal architecture example with OpenStack Networking
|
|
(neutron)—Network layout</title>
|
|
<mediaobject>
|
|
<imageobject>
|
|
<imagedata contentwidth="6in"
|
|
fileref="../common/figures/installguidearch-neutron-networks.png"/>
|
|
</imageobject>
|
|
</mediaobject>
|
|
</figure>
|
|
<figure xml:id="example-architecture-with-neutron-networking-services">
|
|
<title>Minimal architecture example with OpenStack Networking
|
|
(neutron)—Service layout</title>
|
|
<mediaobject>
|
|
<imageobject>
|
|
<imagedata contentwidth="6in"
|
|
fileref="../common/figures/installguidearch-neutron-services.png"/>
|
|
</imageobject>
|
|
</mediaobject>
|
|
</figure>
|
|
|
|
</listitem>
|
|
<listitem>
|
|
<para>Two-node architecture with legacy networking
|
|
(nova-network) and optional nodes for Block Storage and
|
|
Object Storage services.</para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>The
|
|
<glossterm baseform="cloud controller node"
|
|
>controller node</glossterm> runs the Identity service,
|
|
Image Service, management portion of Compute, and the
|
|
dashboard. It also includes supporting services such as
|
|
a SQL database, <glossterm>message queue</glossterm>, and
|
|
<glossterm>Network Time Protocol (NTP)</glossterm>.</para>
|
|
<para>Optionally, the controller node runs portions of
|
|
Block Storage, Object Storage, Orchestration, Telemetry,
|
|
Database, and Data Processing services. These
|
|
components provide additional features for your
|
|
environment.</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>The <glossterm>compute node</glossterm> runs the
|
|
<glossterm>hypervisor</glossterm> portion of Compute
|
|
that operates <glossterm>tenant</glossterm>
|
|
<glossterm baseform="virtual machine (VM)">virtual machines</glossterm>
|
|
or instances. By default, Compute uses
|
|
<glossterm baseform="kernel-based VM (KVM)">KVM</glossterm>
|
|
as the <glossterm>hypervisor</glossterm>. Compute also
|
|
provisions tenant networks and provides firewalling
|
|
(<glossterm baseform="security group"
|
|
>security groups</glossterm>) services. You can run more
|
|
than one compute node.</para>
|
|
<para>Optionally, the compute node runs a Telemetry
|
|
agent to collect metrics. Also, it can contain a third
|
|
network interface on a separate storage network to improve
|
|
performance of storage services.</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>The optional Block Storage node contains the disks that
|
|
the Block Storage service provisions for tenant virtual machine
|
|
instances. You can run more than one of these nodes.</para>
|
|
<para>Optionally, the Block Storage node runs a Telemetry
|
|
agent to collect metrics. Also, it can contain a second
|
|
network interface on a separate storage network to improve
|
|
performance of storage services.</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>The optional Object Storage nodes contain the disks that
|
|
the Object Storage service uses for storing accounts,
|
|
containers, and objects. You can run more than two of these
|
|
nodes. However, the minimal architecture example requires
|
|
two nodes.</para>
|
|
<para>Optionally, these nodes can contain a second network
|
|
interface on a separate storage network to improve
|
|
performance of storage services.</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
<note>
|
|
<para>When you implement this architecture, skip
|
|
<xref linkend="section_neutron-networking" /> in
|
|
<xref linkend="ch_networking" />. To use optional services, you
|
|
might need to build additional nodes, as described in
|
|
subsequent chapters.</para>
|
|
</note>
|
|
<figure xml:id="example-architecture-with-legacy-networking-hw">
|
|
<title>Minimal architecture example with legacy networking
|
|
(nova-network)—Hardware requirements</title>
|
|
<mediaobject>
|
|
<imageobject>
|
|
<imagedata contentwidth="6in"
|
|
fileref="../common/figures/installguidearch-nova-hw.png"/>
|
|
</imageobject>
|
|
</mediaobject>
|
|
</figure>
|
|
<figure xml:id="example-architecture-with-legacy-networking-networks">
|
|
<title>Minimal architecture example with legacy networking
|
|
(nova-network)—Network layout</title>
|
|
<mediaobject>
|
|
<imageobject>
|
|
<imagedata contentwidth="6in"
|
|
fileref="../common/figures/installguidearch-nova-networks.png"/>
|
|
</imageobject>
|
|
</mediaobject>
|
|
</figure>
|
|
<figure xml:id="example-architecture-with-legacy-networking-services">
|
|
<title>Minimal architecture example with legacy networking
|
|
(nova-network)—Service layout</title>
|
|
<mediaobject>
|
|
<imageobject>
|
|
<imagedata contentwidth="6in"
|
|
fileref="../common/figures/installguidearch-nova-services.png"/>
|
|
</imageobject>
|
|
</mediaobject>
|
|
</figure>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</section>
|
|
</chapter>
|