using updated xpath with xi:include
modified all existing files using xi:include that require the hierarchy to be striped out. dave cramer is super awesome. bug/1226775 Change-Id: Ic4618329e9a3b4de7cfdc91701678f34f7828a9a
This commit is contained in:
@@ -5,16 +5,10 @@
|
||||
version="5.0"
|
||||
xml:id="bk001-ch003-associate-general">
|
||||
<title>OpenStack Associate, General Material To Learn</title>
|
||||
<para>User Stories are referenced here</para>
|
||||
<section xml:id="install-ubuntu-section">
|
||||
<title>Installation of OpenStack from Trunk</title>
|
||||
<para>You will have a working version of OpenStack after this step is completed.</para>
|
||||
<para><link xlink:href="https://blueprints.launchpad.net/openstack-manuals/+filebug" xlink:show="new">Submit a bug. Enter the summary as "Training, " with a few words. Be descriptive as possible in the description field. Open the tag pull-down and enter training-manuals.</link></para>
|
||||
<!-- this maps to user story "As a trainee I need to be able to understand how to install Ubuntu 12.04 (or 13.04 in later versions)" -->
|
||||
</section>
|
||||
<xi:include href="card008.xml"></xi:include>
|
||||
<xi:include href="card025.xml"></xi:include>
|
||||
<xi:include href="card006.xml"></xi:include>
|
||||
<xi:include href="card009.xml"></xi:include>
|
||||
<xi:include href="card011.xml"></xi:include>
|
||||
<xi:include href="card038.xml"></xi:include>
|
||||
</chapter>
|
||||
|
||||
@@ -6,649 +6,11 @@
|
||||
xml:id="configure-virtualbox">
|
||||
<title>VirtualBox Basics</title>
|
||||
<!-- this maps to user story "Card008 - As an associate trainee I need to be able to understand the architecture of the RefStack architecture described in the Basic Install Guide" -->
|
||||
<para> "References Aptira content: lab000-virtualbox-basics.xml" </para>
|
||||
<para><guilabel>Getting Started</guilabel></para>
|
||||
<para>The following are the conventional methods of deploying
|
||||
OpenStack on Virtual Box for the sake of a test/sandbox or just to
|
||||
try out OpenStack on commodity hardware.</para>
|
||||
<para>1. DevStack</para>
|
||||
<para>2. Vagrant</para>
|
||||
<para>But DevStack and Vagrant bring in some level of automated
|
||||
deployment as running the scripts will get your VirtualBox
|
||||
Instance configured as the required OpenStack deployment. We
|
||||
will be manually deploying OpenStack on VirtualBox Instance to
|
||||
get better view of how OpenStack works.</para>
|
||||
<para><guilabel>Prerequisite:</guilabel></para>
|
||||
<para>Well, its a daunting task to just cover all of OpenStack’s
|
||||
concepts let alone Virtualization and Networking. So some basic
|
||||
idea/knowledge on Virtualization, Networking and Linux is
|
||||
required. Even though I will try to keep the level as low as
|
||||
possible for making it easy for Linux Newbies as well as
|
||||
experts.</para>
|
||||
<para>These Virtual Machines and Virtual Networks will be given
|
||||
equal privilege as a physical machine on a physical
|
||||
network.</para>
|
||||
<para>Just for those who would want to do a deeper research or
|
||||
study, for more information you may refer the following
|
||||
links</para>
|
||||
<para><emphasis role="bold">OpenStack:</emphasis>OpenStack
|
||||
Official Documentation (docs.openstack.org)</para>
|
||||
<para><emphasis role="bold">Networking:</emphasis>Computer
|
||||
Networks (5th Edition) by Andrew S. Tanenbaum </para>
|
||||
<para><emphasis role="bold">VirtualBox:</emphasis>Virtual Box
|
||||
Manual (http://www.virtualbox.org/manual/UserManual.html)</para>
|
||||
<para><emphasis role="bold">Requirements :</emphasis></para>
|
||||
<para>Operating Systems - I recommend Ubuntu Server 12.04 LTS,
|
||||
Ubuntu Server 13.10 or Debian Wheezy</para>
|
||||
<para><emphasis role="bold">Note :</emphasis>Ubuntu 12.10 is not
|
||||
supporting OpenStack Grizzly Packages. Ubuntu team has decided not
|
||||
to package Grizzly Packages for Ubuntu 12.10.</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Recommended Requirements.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<informaltable class="c25">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td rowspan="1" colspan="1">VT Enabled PC:</td>
|
||||
<td rowspan="1" colspan="1">Intel ix or Amd QuadCore</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="1" colspan="1">4GB Ram:</td>
|
||||
<td rowspan="1" colspan="1">DDR2/DDR3</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</informaltable>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Minimum Requirements.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<informaltable class="c25">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td rowspan="1" colspan="1">Non-VT PC's:</td>
|
||||
<td rowspan="1" colspan="1">Intel Core 2 Duo or Amd Dual
|
||||
Core</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="1" colspan="1">2GB Ram:</td>
|
||||
<td rowspan="1" colspan="1">DDR2/DDR3</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</informaltable>
|
||||
<para>If you don't know whether your processor is VT enabled, you
|
||||
could check it by installing cpu checker</para>
|
||||
<informaltable class="c25">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td rowspan="1" colspan="1">$sudo apt-get install
|
||||
cpu-checker$sudo kvm-ok</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</informaltable>
|
||||
<para>If your device does not support VT it will show</para>
|
||||
<para>INFO:Your CPU does not support KVM extensions</para>
|
||||
<para>KVM acceleration can NOT be used</para>
|
||||
<para>You will still be able to use Virtual Box but the instances
|
||||
will be very slow.</para>
|
||||
<para>There are many ways to configure your OpenStack Setup, we
|
||||
will be deploying OpenStack Multi Node using OVS as the Network
|
||||
Plugin and QEMU/ KVM as the hypervisor.</para>
|
||||
<para><emphasis role="bold">Host Only Connections:</emphasis></para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Host only connections provide an Internal network
|
||||
between your host and the Virtual Machine instances up and
|
||||
running on your host machine.This network is not traceable
|
||||
by other networks.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>You may even use Bridged connection if you have a
|
||||
router/switch. I am assuming the worst case (one IP without
|
||||
any router), so that it is simple to get the required
|
||||
networks running without the hassle of IP tables.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>The following are the host only connections that you
|
||||
will be setting up later on :</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para>vboxnet0 - OpenStack Management Network - Host static IP
|
||||
10.10.10.1</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>vboxnet1 - VM Conf.Network - Host Static IP
|
||||
10.20.20.1</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>vboxnet2 - VM External Network Access (Host
|
||||
Machine)</para>
|
||||
<para><emphasis role="bold">Network Diagram :</emphasis></para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
<figure>
|
||||
<title>Network Diagram</title>
|
||||
<mediaobject>
|
||||
<imageobject>
|
||||
<imagedata fileref="figures/lab000-virtual-box/image03.png"/>
|
||||
</imageobject>
|
||||
</mediaobject>
|
||||
</figure>
|
||||
<para>Vboxnet0, Vboxnet1, Vboxnet2 - are virtual networks setup up
|
||||
by virtual box with your host machine. This is the way your host
|
||||
can communicate with the virtual machines. These networks are in
|
||||
turn used by virtual box VM’s for OpenStack networks, so that
|
||||
OpenStack’s services can communicate with each other.</para>
|
||||
<para><guilabel>Setup Your VM Environment</guilabel></para>
|
||||
<para>Before you can start configuring your Environment you need to
|
||||
download some of the following stuff:</para>
|
||||
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para><link xlink:href="https://www.virtualbox.org/wiki/Downloads">
|
||||
Oracle Virtual Box</link></para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
<para>Note:You cannot set up a amd64 VM on a x86 machine.</para>
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para><link xlink:href="http://www.ubuntu.com/download/server">
|
||||
Ubuntu 12.04 Server or Ubuntu 13.04 Server</link></para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
<para>Note:You need a x86 image for VM's if kvm-ok fails, even
|
||||
though you are on amd64 machine.</para>
|
||||
<para>Note: Even Though I'm using Ubuntu as Host, the same is
|
||||
applicable to Windows, Mac and other Linux Hosts.</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>If you have i5 or i7 2nd gen processor you can have VT
|
||||
technology inside VM's provided by VmWare. This means that
|
||||
your OpenStack nodes(Which are in turn VM's) will give
|
||||
positive result on KVM-OK. (I call it - Nesting of type-2
|
||||
Hypervisors). Rest of the configurations remain same except
|
||||
for the UI and few other trivial differences.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<para><guilabel>Configure Virtual Networks</guilabel></para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>This section of the guide will help you setup your
|
||||
networks for your Virtual Machine.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Launch Virtual Box</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Click on <emphasis role="bold"
|
||||
>File>Preferences</emphasis> present on the menu bar of
|
||||
Virtual Box.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Select the <emphasis role="bold">Network
|
||||
tab</emphasis>.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>On the right side you will see an option to add
|
||||
Host-Only networks.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<figure>
|
||||
<title>Create Host Only Networks</title>
|
||||
<mediaobject>
|
||||
<imageobject>
|
||||
<imagedata fileref="figures/lab000-virtual-box/image13.png"/>
|
||||
</imageobject>
|
||||
</mediaobject>
|
||||
</figure>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Create three Host-Only Network Connections. As shown
|
||||
above.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Edit the Host-Only Connections to have the following
|
||||
settings.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<para><emphasis role="bold">Vboxnet0</emphasis></para>
|
||||
|
||||
|
||||
<informaltable class="c25">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th rowspan="1" colspan="1">Option</th>
|
||||
<th rowspan="1" colspan="1">Value</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="1" colspan="1">IPv4 Address:</td>
|
||||
<td rowspan="1" colspan="1">10.10.10.1</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="1" colspan="1">IPv4 Network Mask:</td>
|
||||
<td rowspan="1" colspan="1">255.255.255.0</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="1" colspan="1">IPv6 Address:</td>
|
||||
<td rowspan="1" colspan="1">Can be Left Blank</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="1" colspan="1">IPv6 Network Mask Length :</td>
|
||||
<td rowspan="1" colspan="1">Can be Left Blank</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</informaltable>
|
||||
<figure>
|
||||
<title>Vboxnet0</title>
|
||||
<mediaobject>
|
||||
<imageobject>
|
||||
<imagedata fileref="figures/lab000-virtual-box/image19.png"/>
|
||||
</imageobject>
|
||||
</mediaobject>
|
||||
</figure>
|
||||
<para><emphasis role="bold">Vboxnet1</emphasis></para>
|
||||
|
||||
|
||||
<informaltable class="c25">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th rowspan="1" colspan="1">Option</th>
|
||||
<th rowspan="1" colspan="1">Value</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="1" colspan="1">IPv4 Address:</td>
|
||||
<td rowspan="1" colspan="1">10.20.20.1</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="1" colspan="1">IPv4 Network Mask:</td>
|
||||
<td rowspan="1" colspan="1">255.255.255.0</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="1" colspan="1">IPv6 Address:</td>
|
||||
<td rowspan="1" colspan="1">Can be Left Blank</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="1" colspan="1">IPv6 Network Mask Length :</td>
|
||||
<td rowspan="1" colspan="1">Can be Left Blank</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</informaltable>
|
||||
<figure>
|
||||
<title>Vboxnet1</title>
|
||||
<mediaobject>
|
||||
<imageobject>
|
||||
<imagedata fileref="figures/lab000-virtual-box/image16.png"/>
|
||||
</imageobject>
|
||||
</mediaobject>
|
||||
</figure>
|
||||
<para><emphasis role="bold">Vboxnet2</emphasis></para>
|
||||
|
||||
|
||||
<informaltable class="c25">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th rowspan="1" colspan="1">Option</th>
|
||||
<th rowspan="1" colspan="1">Value</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="1" colspan="1">IPv4 Address:</td>
|
||||
<td rowspan="1" colspan="1">192.168.100.1</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="1" colspan="1">IPv4 Network Mask:</td>
|
||||
<td rowspan="1" colspan="1">255.255.255.0</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="1" colspan="1">IPv6 Address:</td>
|
||||
<td rowspan="1" colspan="1">Can be Left Blank</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="1" colspan="1">IPv6 Network Mask Length :</td>
|
||||
<td rowspan="1" colspan="1">Can be Left Blank</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</informaltable>
|
||||
<figure>
|
||||
<title>Image: Vboxnet2</title>
|
||||
<mediaobject>
|
||||
<imageobject>
|
||||
<imagedata fileref="figures/lab000-virtual-box/image08.png"/>
|
||||
</imageobject>
|
||||
</mediaobject>
|
||||
</figure>
|
||||
<para><guilabel>Install SSH and FTP</guilabel></para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>You may benefit by installing SSH and FTP so that you
|
||||
could use your remote shell to login into the machine and
|
||||
use your terminal which is more convenient that using the
|
||||
Virtual Machines tty through the Virtual Box's UI. You get a
|
||||
few added comforts like copy - paste commands into the
|
||||
remote terminal which is not possible directly on VM.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>FTP is for transferring files to and fro ... you can
|
||||
also use SFTP or install FTPD on both HOST and VM's.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Installation of SSH and FTP with its configuration is
|
||||
out of scope of this GUIDE and I may put it up but it
|
||||
depends upon my free time. If someone wants to contribute to
|
||||
this - please do so.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<para><emphasis role="bold">Note:</emphasis>Please set up the
|
||||
Networks from inside the VM before trying to SSH and FTP into the
|
||||
machines. I would suggest setting it up at once just after the
|
||||
installation of the Server on VM's is over.</para>
|
||||
<para><guilabel>Install Your VM's Instances</guilabel></para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>During Installation of The Operating Systems you will be
|
||||
asked for Custom Software to Install , if you are confused
|
||||
or not sure about this, just skip this step by pressing
|
||||
Enter Key without selecting any of the given Options.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<para><emphasis role="bold">Warning</emphasis> - Please do not
|
||||
install any of the other packages except for which are mentioned
|
||||
below unless you know what you are doing. There is a good chance
|
||||
that you may end up getting unwanted errors, package conflicts ...
|
||||
due to the same.</para>
|
||||
<para><guilabel>Control Node:</guilabel></para>
|
||||
<para>Create a new virtual machine. Select Ubuntu Server</para>
|
||||
<figure>
|
||||
<title>Create New Virtual Machine</title>
|
||||
<mediaobject>
|
||||
<imageobject>
|
||||
<imagedata fileref="figures/lab000-virtual-box/image11.png"/>
|
||||
</imageobject>
|
||||
</mediaobject>
|
||||
</figure>
|
||||
<para>Select appropriate RAM, minimum 512 MB of RAM for Control
|
||||
Node. Rest all can be default settings. The hard disk size can
|
||||
be 8GB as default.</para>
|
||||
<para>Configure the networks</para>
|
||||
<para>(Ignore the IP Address for now, you will set it up from
|
||||
inside the VM)</para>
|
||||
|
||||
|
||||
<informaltable class="c25">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th rowspan="1" colspan="1">Network Adapter</th>
|
||||
<th rowspan="1" colspan="1">Host-Only Adapter Name</th>
|
||||
<th rowspan="1" colspan="1">IP Address</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="1" colspan="1">eth0</td>
|
||||
<td rowspan="1" colspan="1">Vboxnet0</td>
|
||||
<td rowspan="1" colspan="1">10.10.10.51</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="1" colspan="1">eth1</td>
|
||||
<td rowspan="1" colspan="1">Vboxnet2</td>
|
||||
<td rowspan="1" colspan="1">10.20.20.51</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="1" colspan="1">eth2</td>
|
||||
<td rowspan="1" colspan="1">NAT</td>
|
||||
<td rowspan="1" colspan="1">DHCP</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</informaltable>
|
||||
<para><emphasis role="bold">Adapter 1 (Vboxnet0)</emphasis></para>
|
||||
<figure>
|
||||
<title>Adapter1 - Vboxnet0</title>
|
||||
<mediaobject>
|
||||
<imageobject>
|
||||
<imagedata fileref="figures/lab000-virtual-box/image07.png"/>
|
||||
</imageobject>
|
||||
</mediaobject>
|
||||
</figure>
|
||||
<para><emphasis role="bold">Adapter 2 (Vboxnet2)</emphasis></para>
|
||||
<figure>
|
||||
<title>Adapter2 - Vboxnet2</title>
|
||||
<mediaobject>
|
||||
<imageobject>
|
||||
<imagedata fileref="figures/lab000-virtual-box/image18.png"/>
|
||||
</imageobject>
|
||||
</mediaobject>
|
||||
</figure>
|
||||
<para><emphasis role="bold">Adapter 3 (NAT)</emphasis></para>
|
||||
<figure>
|
||||
<title>Adapter3 - NAT</title>
|
||||
<mediaobject>
|
||||
<imageobject>
|
||||
<imagedata fileref="figures/lab000-virtual-box/image14.png"/>
|
||||
</imageobject>
|
||||
</mediaobject>
|
||||
</figure>
|
||||
<para>Now Install Ubuntu Server 12.04 or 13.04 on this
|
||||
machine.</para>
|
||||
<para><emphasis role="bold">Note :</emphasis>Install SSH server
|
||||
when asked for Custom Software to Install. Rest of the packages
|
||||
are not required and may come in the way of OpenStack packages -
|
||||
like DNS servers etc. (not necessary). Unless you know what you
|
||||
are doing.</para>
|
||||
<para><guilabel>Network Node:</guilabel></para>
|
||||
<para>Create a new Virtual Machine,</para>
|
||||
<para>Minimum RAM is 512MB. Rest all can be left default. Minimum
|
||||
HDD space 8GB.</para>
|
||||
<figure>
|
||||
<title>Create New Virtual Machine</title>
|
||||
<mediaobject>
|
||||
<imageobject>
|
||||
<imagedata fileref="figures/lab000-virtual-box/image12.png"/>
|
||||
</imageobject>
|
||||
</mediaobject>
|
||||
</figure>
|
||||
<para>Configure the networks</para>
|
||||
<para>(Ignore the IP Address for now, you will set it up from
|
||||
inside the VM)</para>
|
||||
|
||||
|
||||
<informaltable class="c25">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th rowspan="1" colspan="1">Network Adapter</th>
|
||||
<th rowspan="1" colspan="1">Host-Only Adapter Name</th>
|
||||
<th rowspan="1" colspan="1">IP Address</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="1" colspan="1">eth0</td>
|
||||
<td rowspan="1" colspan="1">Vboxnet0</td>
|
||||
<td rowspan="1" colspan="1">10.10.10.52</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="1" colspan="1">eth1</td>
|
||||
<td rowspan="1" colspan="1">Vboxnet1</td>
|
||||
<td rowspan="1" colspan="1">10.20.20.52</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="1" colspan="1">eth2</td>
|
||||
<td rowspan="1" colspan="1">Vboxnet2</td>
|
||||
<td rowspan="1" colspan="1">192.168.100.51</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="1" colspan="1">eth3</td>
|
||||
<td rowspan="1" colspan="1">NAT</td>
|
||||
<td rowspan="1" colspan="1">DHCP</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</informaltable>
|
||||
<para><emphasis role="bold">Adapter 1 (Vboxnet0)</emphasis></para>
|
||||
<figure>
|
||||
<title>Adapter 1 - Vboxnet0</title>
|
||||
<mediaobject>
|
||||
<imageobject>
|
||||
<imagedata fileref="figures/lab000-virtual-box/image05.png"/>
|
||||
</imageobject>
|
||||
</mediaobject>
|
||||
</figure>
|
||||
<para><emphasis role="bold">Adapter 2 (Vboxnet1)</emphasis></para>
|
||||
<figure>
|
||||
<title>Adapter2 - Vboxnet1</title>
|
||||
<mediaobject>
|
||||
<imageobject>
|
||||
<imagedata fileref="figures/lab000-virtual-box/image17.png"/>
|
||||
</imageobject>
|
||||
</mediaobject>
|
||||
</figure>
|
||||
<para><emphasis role="bold">Adapter 3 (Vboxnet2)</emphasis></para>
|
||||
<figure>
|
||||
<title>Adapter3 - Vboxnet2</title>
|
||||
<mediaobject>
|
||||
<imageobject>
|
||||
<imagedata fileref="figures/lab000-virtual-box/image02.png"/>
|
||||
</imageobject>
|
||||
</mediaobject>
|
||||
</figure>
|
||||
<para><emphasis role="bold">Adapter 4 (NAT)</emphasis></para>
|
||||
<figure>
|
||||
<title>Adapter4 - NAT</title>
|
||||
<mediaobject>
|
||||
<imageobject>
|
||||
<imagedata fileref="figures/lab000-virtual-box/image00.png"/>
|
||||
</imageobject>
|
||||
</mediaobject>
|
||||
</figure>
|
||||
<para>Now Install Ubuntu Server 12.04 or 13.04 on this
|
||||
machine.</para>
|
||||
<para><emphasis role="bold">Note :</emphasis>Install SSH server
|
||||
when asked for Custom Software to Install. Rest of the packages
|
||||
are not required and may come in the way of OpenStack packages -
|
||||
like DNS servers etc. (not necessary). Unless you know what you
|
||||
are doing.</para>
|
||||
<para><guilabel>Compute Node:</guilabel></para>
|
||||
<para>Create a new virtual machine, give it atleast 1,000 MB RAM.
|
||||
Rest all can be left as defaults. Give atleast 8GB HDD.</para>
|
||||
<figure>
|
||||
<title>Create New Virtual Machine</title>
|
||||
<mediaobject>
|
||||
<imageobject>
|
||||
<imagedata fileref="figures/lab000-virtual-box/image04.png"/>
|
||||
</imageobject>
|
||||
</mediaobject>
|
||||
</figure>
|
||||
<para>Configure the networks</para>
|
||||
<para>(Ignore the IP Address for now, you will set it up from
|
||||
inside the VM)</para>
|
||||
|
||||
|
||||
<informaltable class="c25">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th rowspan="1" colspan="1">Network Adapter</th>
|
||||
<th rowspan="1" colspan="1">Host-Only Adapter Name</th>
|
||||
<th rowspan="1" colspan="1">IP Address</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="1" colspan="1">eth0</td>
|
||||
<td rowspan="1" colspan="1">Vboxnet0</td>
|
||||
<td rowspan="1" colspan="1">10.10.10.53</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="1" colspan="1">eth1</td>
|
||||
<td rowspan="1" colspan="1">Vboxnet1</td>
|
||||
<td rowspan="1" colspan="1">10.20.20.53</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="1" colspan="1">eth2</td>
|
||||
<td rowspan="1" colspan="1">NAT</td>
|
||||
<td rowspan="1" colspan="1">DHCP</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</informaltable>
|
||||
<para><emphasis role="bold">Adapter 1 (Vboxnet0)</emphasis></para>
|
||||
<figure>
|
||||
<title>Adapter1 - Vboxnet0</title>
|
||||
<mediaobject>
|
||||
<imageobject>
|
||||
<imagedata fileref="figures/lab000-virtual-box/image15.png"/>
|
||||
</imageobject>
|
||||
</mediaobject>
|
||||
</figure>
|
||||
<para><emphasis role="bold">Adapter 2 (Vboxnet1)</emphasis></para>
|
||||
<figure>
|
||||
<title>Adapter2 - Vboxnet1</title>
|
||||
<mediaobject>
|
||||
<imageobject>
|
||||
<imagedata fileref="figures/lab000-virtual-box/image10.png"/>
|
||||
</imageobject>
|
||||
</mediaobject>
|
||||
</figure>
|
||||
<para><emphasis role="bold">Adapter 3 (NAT)</emphasis></para>
|
||||
<figure>
|
||||
<title>Adapter3 - NAT</title>
|
||||
<mediaobject>
|
||||
<imageobject>
|
||||
<imagedata fileref="figures/lab000-virtual-box/image01.png"/>
|
||||
</imageobject>
|
||||
</mediaobject>
|
||||
</figure>
|
||||
<para>Now Install Ubuntu Server 12.04 or 13.04 on this
|
||||
machine.</para>
|
||||
<para><emphasis role="bold">Note :</emphasis>Install SSH server
|
||||
when asked for Custom Software to Install. Rest of the packages
|
||||
are not required and may come in the way of OpenStack packages -
|
||||
like DNS servers etc. (not necessary). Unless you know what you
|
||||
are doing.</para>
|
||||
<para><guilabel>Warnings/Advice :</guilabel></para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Well there are a few warnings that I must give you out
|
||||
of experience due to common habits that most people may
|
||||
have :</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<para>Sometimes shutting down your Virtual Machine may lead to
|
||||
malfunctioning of OpenStack Services. Try not to direct
|
||||
shutdown your 3. In case your VM's don't get internet.</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>From your VM Instance, Use ping command to see whether
|
||||
Internet is on.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<programlisting>$ping www.google.com</programlisting>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>If its not connected, restart networking
|
||||
service-</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<programlisting>$sudo service networking restart
|
||||
$ping www.google.com</programlisting>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>If this doesn't work, you need to check your network
|
||||
settings from Virtual Box, you may have left something or
|
||||
misconfigured it.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>This should reconnect your network about 99% of the
|
||||
times. If you are really unlucky you must be having some
|
||||
other problems or your Internet connection itself is not
|
||||
functioning.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Note :There are known bugs with the ping under NAT.
|
||||
Although the latest versions of Virtual Box have better
|
||||
performance, sometimes ping may not work even if your
|
||||
Network is connected to internet.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<para>Congrats, you are ready with the infrastructure for
|
||||
deploying OpenStack. Just make sure that you have installed
|
||||
Ubuntu Server on the above setup Virtual Box Instances. In the
|
||||
next section we will go through deploying OpenStack using the
|
||||
above created Virtual Box instances.</para>
|
||||
|
||||
<xi:include href="lab000-virtualbox-basics.xml"
|
||||
xpointer="xmlns(db=http://docbook.org/ns/docbook) xpath(/*/*[not(self::db:title)])">
|
||||
<xi:fallback><para><mediaobject><imageobject><imagedata fileref="figures/openstack-training-remote-content-not-available.png" format="PNG"/></imageobject></mediaobject>Remote content not available</para><para>image source</para><para><link xlink:href="https://docs.google.com/drawings/d/1J2LZSxmc06xKyxMgPjv5fC0blV7qK6956-AeTmFOZD4/edit?usp=sharing">https://docs.google.com/drawings/d/1J2LZSxmc06xKyxMgPjv5fC0blV7qK6956-AeTmFOZD4/edit?usp=sharing</link></para></xi:fallback>
|
||||
</xi:include>
|
||||
<para><link xlink:href="https://blueprints.launchpad.net/openstack-manuals/+filebug" xlink:show="new">Submit a bug on
|
||||
the section above. Short description for the bug summary. Paragraph for the description and
|
||||
then tag with training-manuals.</link></para>
|
||||
</section>
|
||||
@@ -6,377 +6,11 @@
|
||||
xml:id="card008-Understand_refstack_architecture">
|
||||
<title>Understanding the RefStack Architecture</title>
|
||||
<!-- this maps to user story "Card008 - As an associate trainee I need to be able to understand the architecture of the RefStack architecture described in the Basic Install Guide" -->
|
||||
<para> "References Aptira content: module001-ch004-openstack-architecture.xml" </para>
|
||||
<para><guilabel>Conceptual Architecture</guilabel></para>
|
||||
<para>The OpenStack project as a whole is designed to deliver a
|
||||
massively scalable cloud operating system. To achieve this, each
|
||||
of the constituent services are designed to work together to
|
||||
provide a complete Infrastructure as a Service (IaaS). This
|
||||
integration is facilitated through public application
|
||||
programming interfaces (APIs) that each service offers (and in
|
||||
turn can consume). While these APIs allow each of the services
|
||||
to use another service, it also allows an implementer to switch
|
||||
out any service as long as they maintain the API. These are
|
||||
(mostly) the same APIs that are available to end users of the
|
||||
cloud.</para>
|
||||
<para>Conceptually, you can picture the relationships between the
|
||||
services as so:</para>
|
||||
<figure>
|
||||
<title>Conceptual Diagram</title>
|
||||
<mediaobject>
|
||||
<imageobject>
|
||||
<imagedata fileref="figures/image13.jpg"/>
|
||||
</imageobject>
|
||||
</mediaobject>
|
||||
</figure>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Dashboard ("Horizon") provides a web front end to the
|
||||
other OpenStack services</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Compute ("Nova") stores and retrieves virtual disks
|
||||
("images") and associated metadata in Image
|
||||
("Glance")</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Network ("Quantum") provides virtual networking for
|
||||
Compute.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Block Storage ("Cinder") provides storage volumes for
|
||||
Compute.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Image ("Glance") can store the actual virtual disk files
|
||||
in the Object Store("Swift")</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>All the services authenticate with Identity
|
||||
("Keystone")</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<para>This is a stylized and simplified view of the architecture,
|
||||
assuming that the implementer is using all of the services
|
||||
together in the most common configuration. It also only shows
|
||||
the "operator" side of the cloud -- it does not picture how
|
||||
consumers of the cloud may actually use it. For example, many
|
||||
users will access object storage heavily (and directly).</para>
|
||||
<para><guilabel>Logical Architecture</guilabel></para>
|
||||
<para>This picture is consistent with the conceptual architecture
|
||||
above:</para>
|
||||
<figure>
|
||||
<title>Logical Diagram</title>
|
||||
<mediaobject>
|
||||
<imageobject>
|
||||
<imagedata fileref="figures/image31.jpg"/>
|
||||
</imageobject>
|
||||
</mediaobject>
|
||||
</figure>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>End users can interact through a common web interface
|
||||
(Horizon) or directly to each service through their
|
||||
API</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>All services authenticate through a common source
|
||||
(facilitated through keystone)</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Individual services interact with each other through
|
||||
their public APIs (except where privileged administrator
|
||||
commands are necessary)</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<para>In the sections below, we'll delve into the architecture for
|
||||
each of the services.</para>
|
||||
<para><guilabel>Dashboard</guilabel></para>
|
||||
<para>Horizon is a modular Django web application that provides
|
||||
an end user and administrator interface to OpenStack
|
||||
services.</para>
|
||||
<figure>
|
||||
<title>Horizon Dashboard</title>
|
||||
<mediaobject>
|
||||
<imageobject>
|
||||
<imagedata fileref="figures/image10.jpg"/>
|
||||
</imageobject>
|
||||
</mediaobject>
|
||||
</figure>
|
||||
<para>As with most web applications, the architecture is fairly
|
||||
simple:</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Horizon is usually deployed via mod_wsgi in Apache.
|
||||
The code itself is separated into a reusable python module
|
||||
with most of the logic (interactions with various
|
||||
OpenStack APIs) and presentation (to make it easily
|
||||
customizable for different sites).</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>A database (configurable as to which one). As it
|
||||
relies mostly on the other services for data, it stores
|
||||
very little data of its own.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<para>From a network architecture point of view, this service
|
||||
will need to be customer accessible as well as be able to talk
|
||||
to each service's public APIs. If you wish to use the
|
||||
administrator functionality (i.e. for other services), it will
|
||||
also need connectivity to their Admin API endpoints (which
|
||||
should be non-customer accessible).</para>
|
||||
<para><guilabel>Compute</guilabel></para>
|
||||
<para>Nova is the most complicated and distributed component of
|
||||
OpenStack. A large number of processes cooperate to turn end
|
||||
user API requests into running virtual machines. Below is a
|
||||
list of these processes and their functions:</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>nova-api accepts and responds to end user compute API
|
||||
calls. It supports OpenStack Compute API, Amazon's EC2 API
|
||||
and a special Admin API (for privileged users to perform
|
||||
administrative actions). It also initiates most of the
|
||||
orchestration activities (such as running an instance) as
|
||||
well as enforces some policy (mostly quota checks).</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>The nova-compute process is primarily a worker daemon
|
||||
that creates and terminates virtual machine instances via
|
||||
hypervisor's APIs (XenAPI for XenServer/XCP, libvirt for
|
||||
KVM or QEMU, VMwareAPI for VMware, etc.). The process by
|
||||
which it does so is fairly complex but the basics are
|
||||
simple: accept actions from the queue and then perform a
|
||||
series of system commands (like launching a KVM instance)
|
||||
to carry them out while updating state in the
|
||||
database.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>nova-volume manages the creation, attaching and
|
||||
detaching of z volumes to compute instances (similar
|
||||
functionality to Amazon’s Elastic Block Storage). It can
|
||||
use volumes from a variety of providers such as iSCSI or
|
||||
Rados Block Device in Ceph. A new OpenStack project,
|
||||
Cinder, will eventually replace nova-volume functionality.
|
||||
In the Folsom release, nova-volume and the Block Storage
|
||||
service will have similar functionality.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>The nova-network worker daemon is very similar to
|
||||
nova-compute and nova-volume. It accepts networking tasks
|
||||
from the queue and then performs tasks to manipulate the
|
||||
network (such as setting up bridging interfaces or
|
||||
changing iptables rules). This functionality is being
|
||||
migrated to Quantum, a separate OpenStack service. In the
|
||||
Folsom release, much of the functionality will be
|
||||
duplicated between nova-network and Quantum.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>The nova-schedule process is conceptually the simplest
|
||||
piece of code in OpenStack Nova: take a virtual machine
|
||||
instance request from the queue and determines where it
|
||||
should run (specifically, which compute server host it
|
||||
should run on).</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>The queue provides a central hub for passing messages
|
||||
between daemons. This is usually implemented with RabbitMQ
|
||||
today, but could be any AMPQ message queue (such as Apache
|
||||
Qpid). New to the Folsom release is support for Zero
|
||||
MQ.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>The SQL database stores most of the build-time and
|
||||
runtime state for a cloud infrastructure. This includes
|
||||
the instance types that are available for use, instances
|
||||
in use, networks available and projects. Theoretically,
|
||||
OpenStack Nova can support any database supported by
|
||||
SQL-Alchemy but the only databases currently being widely
|
||||
used are sqlite3 (only appropriate for test and
|
||||
development work), MySQL and PostgreSQL.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Nova also provides console services to allow end users
|
||||
to access their virtual instance's console through a
|
||||
proxy. This involves several daemons (nova-console,
|
||||
nova-novncproxy and nova-consoleauth).</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<para>Nova interacts with many other OpenStack services:
|
||||
Keystone for authentication, Glance for images and Horizon for
|
||||
web interface. The Glance interactions are central. The API
|
||||
process can upload and query Glance while nova-compute will
|
||||
download images for use in launching images.</para>
|
||||
<para><guilabel>Object Store</guilabel></para>
|
||||
<para>The swift architecture is very distributed to prevent any
|
||||
single point of failure as well as to scale horizontally. It
|
||||
includes the following components:</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Proxy server (swift-proxy-server) accepts incoming
|
||||
requests via the OpenStack Object API or just raw HTTP. It
|
||||
accepts files to upload, modifications to metadata or
|
||||
container creation. In addition, it will also serve files
|
||||
or container listing to web browsers. The proxy server may
|
||||
utilize an optional cache (usually deployed with memcache)
|
||||
to improve performance.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Account servers manage accounts defined with the
|
||||
object storage service.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Container servers manage a mapping of containers (i.e
|
||||
folders) within the object store service.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Object servers manage actual objects (i.e. files) on
|
||||
the storage nodes.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>There are also a number of periodic process which run
|
||||
to perform housekeeping tasks on the large data store. The
|
||||
most important of these is the replication services, which
|
||||
ensures consistency and availability through the cluster.
|
||||
Other periodic processes include auditors, updaters and
|
||||
reapers.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<para>Authentication is handled through configurable WSGI
|
||||
middleware (which will usually be Keystone).</para>
|
||||
<para><guilabel>Image Store</guilabel></para>
|
||||
<para>The Glance architecture has stayed relatively stable since
|
||||
the Cactus release. The biggest architectural change has been
|
||||
the addition of authentication, which was added in the Diablo
|
||||
release. Just as a quick reminder, Glance has four main parts
|
||||
to it:</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>glance-api accepts Image API calls for image
|
||||
discovery, image retrieval and image storage.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>glance-registry stores, processes and retrieves
|
||||
metadata about images (size, type, etc.).</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>A database to store the image metadata. Like Nova, you
|
||||
can choose your database depending on your preference (but
|
||||
most people use MySQL or SQlite).</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>A storage repository for the actual image files. In
|
||||
the diagram above, Swift is shown as the image repository,
|
||||
but this is configurable. In addition to Swift, Glance
|
||||
supports normal filesystems, RADOS block devices, Amazon
|
||||
S3 and HTTP. Be aware that some of these choices are
|
||||
limited to read-only usage.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<para>There are also a number of periodic process which run on
|
||||
Glance to support caching. The most important of these is the
|
||||
replication services, which ensures consistency and
|
||||
availability through the cluster. Other periodic processes
|
||||
include auditors, updaters and reapers.</para>
|
||||
<para>As you can see from the diagram in the Conceptual
|
||||
Architecture section, Glance serves a central role to the
|
||||
overall IaaS picture. It accepts API requests for images (or
|
||||
image metadata) from end users or Nova components and can
|
||||
store its disk files in the object storage service,
|
||||
Swift.</para>
|
||||
<para><guilabel>Identity</guilabel></para>
|
||||
<para>Keystone provides a single point of integration for
|
||||
OpenStack policy, catalog, token and authentication.</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>keystone handles API requests as well as providing
|
||||
configurable catalog, policy, token and identity
|
||||
services.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Each Keystone function has a pluggable backend which
|
||||
allows different ways to use the particular service. Most
|
||||
support standard backends like LDAP or SQL, as well as Key
|
||||
Value Stores (KVS).</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<para>Most people will use this as a point of customization for
|
||||
their current authentication services.</para>
|
||||
<para><guilabel>Network</guilabel></para>
|
||||
<para>Quantum provides "network connectivity as a service"
|
||||
between interface devices managed by other OpenStack services
|
||||
(most likely Nova). The service works by allowing users to
|
||||
create their own networks and then attach interfaces to them.
|
||||
Like many of the OpenStack services, Quantum is highly
|
||||
configurable due to it's plug-in architecture. These plug-ins
|
||||
accommodate different networking equipment and software. As
|
||||
such, the architecture and deployment can vary dramatically.
|
||||
In the above architecture, a simple Linux networking plug-in
|
||||
is shown.</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>quantum-server accepts API requests and then routes
|
||||
them to the appropriate quantum plugin for action.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Quantum plugins and agents perform the actual actions
|
||||
such as plugging and unplugging ports, creating networks
|
||||
or subnets and IP addressing. These plugins and agents
|
||||
differ depending on the vendor and technologies used in
|
||||
the particular cloud. Quantum ships with plugins and
|
||||
agents for: Cisco virtual and physical switches, Nicira
|
||||
NVP product, NEC OpenFlow products, Openvswitch, Linux
|
||||
bridging and the Ryu Network Operating System.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>The common agents are L3 (layer 3), DHCP (dynamic host
|
||||
IP addressing) and the specific plug-in agent.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Most Quantum installations will also make use of a
|
||||
messaging queue to route information between the
|
||||
quantum-server and various agents as well as a database to
|
||||
store networking state for particular plugins.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<para>Quantum will interact mainly with Nova, where it will
|
||||
provide networks and connectivity for its instances.</para>
|
||||
<para><guilabel>Block Storage</guilabel></para>
|
||||
<para>Cinder separates out the persistent block storage
|
||||
functionality that was previously part of Openstack Compute
|
||||
(in the form of nova-volume) into it's own service. The
|
||||
OpenStack Block Storage API allows for manipulation of
|
||||
volumes, volume types (similar to compute flavors) and volume
|
||||
snapshots.</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>cinder-api accepts API requests and routes them to
|
||||
cinder-volume for action.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>cinder-volume acts upon the requests by reading or
|
||||
writing to the Cinder database to maintain state,
|
||||
interacting with other processes (like cinder-scheduler)
|
||||
through a message queue and directly upon block storage
|
||||
providing hardware or software. It can interact with a
|
||||
variety of storage providers through a driver
|
||||
architecture. Currently, there are drivers for IBM,
|
||||
SolidFire, NetApp, Nexenta, Zadara, linux iSCSI and other
|
||||
storage providers.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Much like nova-scheduler, the cinder-scheduler daemon
|
||||
picks the optimal block storage provider node to create
|
||||
the volume on.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Cinder deployments will also make use of a messaging
|
||||
queue to route information between the cinder processes as
|
||||
well as a database to store volume state.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<para>Like Quantum, Cinder will mainly interact with Nova,
|
||||
providing volumes for its instances.</para>
|
||||
<para><link xlink:href="https://blueprints.launchpad.net/openstack-manuals/+filebug" xlink:show="new">Submit a bug on
|
||||
the section above. Short description for the bug summary. Paragraph for the description and
|
||||
then tag with training-manuals.</link></para>
|
||||
<xi:include href="module001-ch004-openstack-architecture.xml"
|
||||
xpointer="xmlns(db=http://docbook.org/ns/docbook) xpath(/*/*[not(self::db:title)])">
|
||||
<xi:fallback><para><mediaobject><imageobject><imagedata fileref="figures/openstack-training-remote-content-not-available.png" format="PNG"/></imageobject></mediaobject>Remote content not available</para><para>image source</para><para><link xlink:href="https://docs.google.com/drawings/d/1J2LZSxmc06xKyxMgPjv5fC0blV7qK6956-AeTmFOZD4/edit?usp=sharing">https://docs.google.com/drawings/d/1J2LZSxmc06xKyxMgPjv5fC0blV7qK6956-AeTmFOZD4/edit?usp=sharing</link></para></xi:fallback>
|
||||
</xi:include>
|
||||
<para><link xlink:href="https://blueprints.launchpad.net/openstack-manuals/+filebug" xlink:show="new">Submit a bug on
|
||||
the section above. Short description for the bug summary. Paragraph for the description and
|
||||
then tag with training-manuals.</link></para>
|
||||
</section>
|
||||
|
||||
19
doc/training-guide/card009.xml
Normal file
19
doc/training-guide/card009.xml
Normal file
@@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<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="install-ubuntu">
|
||||
<title>Install Ubuntu</title>
|
||||
<!-- this maps to user story "Card009 - As a trainee I need to be able to understand how to install Ubuntu 12.04 (or 13.04 in later versions) -->
|
||||
<!-- <xi:include href="../install-guide/basic-install-files/basic-install_controller-common.xml"
|
||||
xpointer="xmlns(db=http://docbook.org/ns/docbook) xpath(//*[@xml:id = 'controller-os']/*[not(self::db:title)])">
|
||||
<xi:fallback><para><mediaobject><imageobject><imagedata fileref="figures/openstack-training-remote-content-not-available.png" format="PNG"/></imageobject></mediaobject>Remote content not available</para><para>image source</para><para><link xlink:href="https://docs.google.com/drawings/d/1J2LZSxmc06xKyxMgPjv5fC0blV7qK6956-AeTmFOZD4/edit?usp=sharing">https://docs.google.com/drawings/d/1J2LZSxmc06xKyxMgPjv5fC0blV7qK6956-AeTmFOZD4/edit?usp=sharing</link></para></xi:fallback>
|
||||
</xi:include> --> <para>../install-guide/basic-install-files/basic-install_controller-common.xml
|
||||
line 30
|
||||
Severity: error
|
||||
Description: IDREF "basic-install_common_repo" without matching ID
|
||||
</para>
|
||||
<para><link xlink:href="https://blueprints.launchpad.net/openstack-manuals/+filebug" xlink:show="new">Submit a bug on
|
||||
the section above. Short description for the bug summary. Paragraph for the description and
|
||||
then tag with training-manuals.</link></para>
|
||||
</section>
|
||||
@@ -5,6 +5,11 @@
|
||||
version="5.0"
|
||||
xml:id="card011-Installing_MySQL_Database_service">
|
||||
<title>Installing MySQL</title>
|
||||
<xi:include href="../install-guide/section_installing-mysql.xml">
|
||||
<xi:include href="../install-guide/basic-install-files/basic-install_controller-common.xml"
|
||||
xpointer="xmlns(db=http://docbook.org/ns/docbook) xpath(//*[@xml:id = 'controller-mysql']/*[not(self::db:info)])">
|
||||
<xi:fallback><para><mediaobject><imageobject><imagedata fileref="figures/openstack-training-remote-content-not-available.png" format="PNG"/></imageobject></mediaobject>Remote content not available</para><para>image source</para><para><link xlink:href="https://docs.google.com/drawings/d/1J2LZSxmc06xKyxMgPjv5fC0blV7qK6956-AeTmFOZD4/edit?usp=sharing">https://docs.google.com/drawings/d/1J2LZSxmc06xKyxMgPjv5fC0blV7qK6956-AeTmFOZD4/edit?usp=sharing</link></para></xi:fallback>
|
||||
</xi:include>
|
||||
<para><link xlink:href="https://blueprints.launchpad.net/openstack-manuals/+filebug" xlink:show="new">Submit a bug on
|
||||
the section above. Short description for the bug summary. Paragraph for the description and
|
||||
then tag with training-manuals.</link></para>
|
||||
</section>
|
||||
|
||||
@@ -5,9 +5,10 @@
|
||||
xml:id="role-controller-node">
|
||||
<title>Role of the Controller Node</title>
|
||||
<!-- this maps to user story "Card025 - As an associate trainee I need to be able to understand the role of the Controller Node in The RefStack architecture described in the basic install guide -->
|
||||
<!-- <xi:include href="../install-guide/basic-install-files/basic-install_architecture.xml"></xi:include> -->
|
||||
<xi:include href="../install-guide/basic-install-files/basic-install_architecture.xml"
|
||||
xpointer="xpath(/*/*[not(local-name(.)='title')])"/>
|
||||
xpointer="xmlns(db=http://docbook.org/ns/docbook) xpath(/*/*[not(self::db:title)])">
|
||||
<xi:fallback><para><mediaobject><imageobject><imagedata fileref="figures/openstack-training-remote-content-not-available.png" format="PNG"/></imageobject></mediaobject>Remote content not available</para><para>image source</para><para><link xlink:href="https://docs.google.com/drawings/d/1J2LZSxmc06xKyxMgPjv5fC0blV7qK6956-AeTmFOZD4/edit?usp=sharing">https://docs.google.com/drawings/d/1J2LZSxmc06xKyxMgPjv5fC0blV7qK6956-AeTmFOZD4/edit?usp=sharing</link></para></xi:fallback>
|
||||
</xi:include>
|
||||
<para><link xlink:href="https://blueprints.launchpad.net/openstack-manuals/+filebug" xlink:show="new">Submit a bug on
|
||||
the section above. Short description for the bug summary. Paragraph for the description and
|
||||
then tag with training-manuals.</link></para>
|
||||
|
||||
@@ -5,6 +5,11 @@
|
||||
version="5.0"
|
||||
xml:id="card038-Install-and-configure-OpenStack-Identity-Service-in-the-Controller-Node">
|
||||
<title>Install and configure OpenStack Identity Service in the Controller Node</title>
|
||||
<xi:include href="../install-guide/basic-install-files/basic-install_controller-keystone.xml">
|
||||
<xi:include href="../install-guide/basic-install-files/basic-install_controller-keystone.xml"
|
||||
xpointer="xmlns(db=http://docbook.org/ns/docbook) xpath(/*/*[not(self::db:title)])">
|
||||
<xi:fallback><para><mediaobject><imageobject><imagedata fileref="figures/openstack-training-remote-content-not-available.png" format="PNG"/></imageobject></mediaobject>Remote content not available</para><para>image source</para><para><link xlink:href="https://docs.google.com/drawings/d/1J2LZSxmc06xKyxMgPjv5fC0blV7qK6956-AeTmFOZD4/edit?usp=sharing">https://docs.google.com/drawings/d/1J2LZSxmc06xKyxMgPjv5fC0blV7qK6956-AeTmFOZD4/edit?usp=sharing</link></para></xi:fallback>
|
||||
</xi:include>
|
||||
<para><link xlink:href="https://blueprints.launchpad.net/openstack-manuals/+filebug" xlink:show="new">Submit a bug on
|
||||
the section above. Short description for the bug summary. Paragraph for the description and
|
||||
then tag with training-manuals.</link></para>
|
||||
</section>
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<chapter xmlns="http://docbook.org/ns/docbook"
|
||||
<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="userstory-includes-template_version_1.0">
|
||||
<title>Including external content for user stories, version 1.0</title>
|
||||
xml:id="userstory-includes-template_version_1.1">
|
||||
<title>Including external content for user stories, version 1.1</title>
|
||||
<para>Save your user story file as associate-my-user-story-name, operator-my-user-story, etc. For
|
||||
example my user story that I assigned myself is operator bug fix so the file name would be
|
||||
operator-fix-documentation-bug.xml. See the operator-fix-documentation-bug.xml file in the
|
||||
@@ -21,46 +21,26 @@
|
||||
big dummy example image</para>
|
||||
<para>image source</para>
|
||||
<para><link xlink:href="https://docs.google.com/drawings/d/1Tdn4SZLBdvQybW_nK_lO380YRIe5T6PsI0IyLH5XE3M/edit?usp=sharing">https://docs.google.com/drawings/d/1Tdn4SZLBdvQybW_nK_lO380YRIe5T6PsI0IyLH5XE3M/edit?usp=sharing</link></para>
|
||||
<section xml:id="foobar-section">
|
||||
<title>Descriptive Section Title</title>
|
||||
<para>Including a whole file. Include as much description about what is being taught
|
||||
here.</para>
|
||||
|
||||
<para><emphasis role="bold">Including a whole file. Include as much description about what is
|
||||
being taught here.</emphasis></para>
|
||||
<!-- this maps to cardXXX user story title "blah blah" -->
|
||||
<xi:include href="../install-guide/basic-install-files/basic-install_architecture.xml"
|
||||
xpointer="xmlns(db=http://docbook.org/ns/docbook) xpath(/*/*[not(self::db:title)])">
|
||||
<xi:fallback><para><mediaobject><imageobject><imagedata fileref="figures/openstack-training-remote-content-not-available.png" format="PNG"/></imageobject></mediaobject>Remote content not available</para><para>image source</para><para><link xlink:href="https://docs.google.com/drawings/d/1J2LZSxmc06xKyxMgPjv5fC0blV7qK6956-AeTmFOZD4/edit?usp=sharing">https://docs.google.com/drawings/d/1J2LZSxmc06xKyxMgPjv5fC0blV7qK6956-AeTmFOZD4/edit?usp=sharing</link></para></xi:fallback>
|
||||
</xi:include>
|
||||
<para><link xlink:href="https://blueprints.launchpad.net/openstack-manuals/+filebug" xlink:show="new">Submit a bug on
|
||||
the section above. Short description for the bug summary. Paragraph for the description and
|
||||
then tag with training-manuals.</link></para>
|
||||
|
||||
<para><emphasis role="bold">Including a section of a file. Include as much description about
|
||||
what is being taught here.</emphasis></para>
|
||||
<!-- this maps to cardXXX user story title "blah blah" -->
|
||||
<xi:include href="../install-guide/basic-install-files/basic-install_controller-common.xml"
|
||||
xpointer="xmlns(db=http://docbook.org/ns/docbook) xpath(//*[@xml:id = 'controller-os']/*[not(self::db:title)])">
|
||||
<xi:fallback><para><mediaobject><imageobject><imagedata fileref="figures/openstack-training-remote-content-not-available.png" format="PNG"/></imageobject></mediaobject>Remote content not available</para><para>image source</para><para><link xlink:href="https://docs.google.com/drawings/d/1J2LZSxmc06xKyxMgPjv5fC0blV7qK6956-AeTmFOZD4/edit?usp=sharing">https://docs.google.com/drawings/d/1J2LZSxmc06xKyxMgPjv5fC0blV7qK6956-AeTmFOZD4/edit?usp=sharing</link></para></xi:fallback>
|
||||
</xi:include>
|
||||
<para><link xlink:href="https://blueprints.launchpad.net/openstack-manuals/+filebug" xlink:show="new">Submit a bug on
|
||||
the section above. Short description for the bug summary. Paragraph for the description and
|
||||
then tag with training-manuals.</link></para>
|
||||
<!-- this maps to user story "blah blah" -->
|
||||
<xi:include href="../install-guide/ch_installing-openstack-overview.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<mediaobject>
|
||||
<imageobject>
|
||||
<imagedata fileref="figures/openstack-training-remote-content-not-available.png" format="PNG"/>
|
||||
</imageobject>
|
||||
</mediaobject>
|
||||
Remote content not available</para>
|
||||
<para>image source</para><para><link xlink:href="https://docs.google.com/drawings/d/1J2LZSxmc06xKyxMgPjv5fC0blV7qK6956-AeTmFOZD4/edit?usp=sharing">https://docs.google.com/drawings/d/1J2LZSxmc06xKyxMgPjv5fC0blV7qK6956-AeTmFOZD4/edit?usp=sharing</link></para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
</section>
|
||||
<section xml:id="fubar-section">
|
||||
<title>Descriptive Section Title</title>
|
||||
<para>Including a section of a file. Include as much description about what is being taught
|
||||
here.</para>
|
||||
<para><link xlink:href="https://blueprints.launchpad.net/openstack-manuals/+filebug" xlink:show="new">Submit a bug on
|
||||
the section above. Short description for the bug summary. Paragraph for the description and
|
||||
then tag with training-manuals.</link></para>
|
||||
<!-- this maps to user story "blah blah" -->
|
||||
<xi:include href="../install-guide/install_controller-common.xml" xpointer="xmlns(db=http://docbook.org/ns/docbook) xpath(//*[@xml:id = 'controller-os'])">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<mediaobject>
|
||||
<imageobject>
|
||||
<imagedata fileref="figures/openstack-training-remote-content-not-available.png" format="PNG"/>
|
||||
</imageobject>
|
||||
</mediaobject>
|
||||
Remote content not available</para>
|
||||
<para>image source</para><para><link xlink:href="https://docs.google.com/drawings/d/1J2LZSxmc06xKyxMgPjv5fC0blV7qK6956-AeTmFOZD4/edit?usp=sharing">https://docs.google.com/drawings/d/1J2LZSxmc06xKyxMgPjv5fC0blV7qK6956-AeTmFOZD4/edit?usp=sharing</link></para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
</section>
|
||||
</chapter>
|
||||
</section>
|
||||
Reference in New Issue
Block a user