cleanup module001-ch010-vm-provisioning-indepth

Quantum changed to Neutron
added plural receives
changed authenticate to plural
added the before request
added and before authenticates
added the before appropriate
added the before nova-database
return to plural
added the before glance-api
changed upload to plural and added the
changed to "so that the" vs "such the"
changed get to gets plural
added the before instance
added the before hypervisor driver
capitalized api
changed in-depth to In Depth

Add <systemitem> markup

Rework list so that step numbers match the graphic.

Co-Authored-By: Andreas Jaeger <aj@suse.de>

Change-Id: I0e966c18f8783cbd04da813175da1e60d9753b2b
This commit is contained in:
Shilla Saebi
2014-02-28 17:14:33 -05:00
committed by Andreas Jaeger
parent b9791c150f
commit 2b8aaaed53
2 changed files with 182 additions and 87 deletions

View File

@@ -18,7 +18,7 @@
</xi:include>
</section>
<section xml:id="associate-vm-provisioning-indepth">
<title>VM Provisioning Indepth</title>
<title>VM provisioning in-depth</title>
<xi:include href="./module001-ch010-vm-provisioning-indepth.xml"
xpointer="xmlns(db=http://docbook.org/ns/docbook) xpath(//*[@xml:id = 'module001-ch010-vm-provisioning-indepth']/*[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>

View File

@@ -4,115 +4,210 @@
xmlns:xlink="http://www.w3.org/1999/xlink"
version="5.0"
xml:id="module001-ch010-vm-provisioning-indepth">
<title>VM Provisioning Indepth</title>
<para>More Content To be Added ...</para>
<para>The request flow for provisioning an Instance goes like
this:</para>
<title>VM provisioning in-depth</title>
<!--
<para>More content to be added...</para>
-->
<para>
The request flow for provisioning an instance goes like
this:
</para>
<!-- The steps here correspond to numbers in figure
figures/image02.png at the end of this file. Do not renumber
the steps -->
<orderedlist>
<listitem>
<para>Dashboard or CLI gets the user credentials authenticates
with Keystone via REST api.</para>
</listitem>
</orderedlist>
<para>Keystone authenticate the credentials and generate &amp; send
back auth-token which will be used for sending request to other
Components through REST-call.</para>
<orderedlist>
<listitem>
<para>Dashboard or CLI convert the new instance request
specified in launch instance or nova-boot form to REST
API request and send it to nova-api.</para>
<!-- 1 -->
<para>The dashboard or CLI gets the user credentials and authenticates
with the Identity Service via REST API.
</para>
<para>
The Identity Service authenticates the user with the user
credentials, and then generates and sends back an auth-token
which will be used for sending the request to other components
through REST-call.
</para>
</listitem>
<listitem>
<para>nova-api receive the request and sends the request for
validation auth-token and access permission to
keystone.</para>
</listitem>
</orderedlist>
<para>Keystone validates the token and sends updated auth headers
with roles and permissions.</para>
<orderedlist>
<listitem>
<para>nova-api interacts with nova-database.</para>
</listitem>
</orderedlist>
<para>Creates initial db entry for new instance.</para>
<orderedlist>
<listitem>
<para>nova-api sends the rpc.call request to nova-scheduler
excepting to get updated instance entry with host ID
specified.</para>
<!-- 2 -->
<para>
The dashboard or CLI converts the new instance request
specified in <guilabel>launch instance</guilabel> or
<command>nova-boot</command> form to a REST API request and
sends it to <systemitem class="service">nova-api</systemitem>.
</para>
</listitem>
<listitem>
<para>nova-scheduler picks the request from the queue.</para>
<!-- 3 -->
<para>
<systemitem class="service">nova-api</systemitem> receives the
request and sends a request to the Identity Service for
validation of the auth-token and access permission.
</para>
<para>
The Identity Service validates the token and sends updated
authentication headers with roles and permissions.
</para>
</listitem>
<listitem>
<para>nova-scheduler interacts with nova-database to find an
appropriate host via filtering and weighing.</para>
</listitem>
</orderedlist>
<para>Returns the updated instance entry with appropriate host ID
after filtering and weighing.</para>
<para>nova-scheduler sends the rpc.cast request to nova-compute for
launching instance on appropriate host .</para>
<orderedlist>
<listitem>
<para>nova-compute picks the request from the queue.</para>
<!-- 4 -->
<para>
<systemitem class="service">nova-api</systemitem> checks for
conflicts with <systemitem
class="service">nova-database</systemitem>.
</para>
<para>
<systemitem class="service">nova-api</systemitem> creates
initial database entry for a new instance.
</para>
</listitem>
<listitem>
<para>nova-compute send the rpc.call request to nova-conductor
to fetch the instance information such as host ID and flavor(
Ram , CPU ,Disk).</para>
<!-- 5 -->
<para>
<systemitem class="service">nova-api</systemitem> sends the
rpc.call request to <systemitem
class="service">nova-scheduler</systemitem> expecting to get
updated instance entry with host ID specified.
</para>
</listitem>
<listitem>
<para>nova-conductor picks the request from the queue.</para>
<!-- 6 -->
<para>
<systemitem class="service">nova-scheduler</systemitem> picks
up the request from the queue.
</para>
</listitem>
<listitem>
<para>nova-conductor interacts with nova-database.</para>
</listitem>
</orderedlist>
<para>Return the instance information.</para>
<para>nova-compute picks the instance information from the
queue.</para>
<orderedlist>
<listitem>
<para>nova-compute does the REST call by passing auth-token to
glance-api to get the Image URI by Image ID from glance and
upload image from image storage.</para>
<!-- 7 -->
<para>
<systemitem class="service">nova-scheduler</systemitem>
interacts with <systemitem
class="service">nova-database</systemitem> to find an
appropriate host via filtering and weighing.
</para>
<para>
<systemitem class="service">nova-scheduler</systemitem>
returns the updated instance entry with the appropriate host
ID after filtering and weighing.
</para>
<para>
<systemitem class="service">nova-scheduler</systemitem> sends
the rpc.cast request to <systemitem
class="service">nova-compute</systemitem> for launching an
instance on the appropriate host.
</para>
</listitem>
<listitem>
<para>glance-api validates the auth-token with keystone.</para>
</listitem>
</orderedlist>
<para>nova-compute get the image metadata.</para>
<para>nova-compute does the REST-call by passing auth-token to
Network API to allocate and configure the network such that
instance gets the IP address.</para>
<orderedlist>
<listitem>
<para>quantum-server validates the auth-token with
keystone.</para>
</listitem>
</orderedlist>
<para>nova-compute get the network info.</para>
<orderedlist>
<listitem>
<para>nova-compute does the REST call by passing auth-token to
Volume API to attach volumes to instance.</para>
<!-- 8 -->
<para>
<systemitem class="service">nova-compute</systemitem> picks up
the request from the queue.
</para>
</listitem>
<listitem>
<para>cinder-api validates the auth-token with keystone.</para>
<para>
<!-- 9 -->
<systemitem class="service">nova-compute</systemitem> sends the
rpc.call request to <systemitem
class="service">nova-conductor</systemitem> to fetch the
instance information such as host ID and flavor (RAM, CPU,
Disk).
</para>
</listitem>
</orderedlist>
<para>nova-compute gets the block storage info.</para>
<orderedlist>
<listitem>
<para>nova-compute generates data for hypervisor driver and
executes request on Hypervisor( via libvirt or api).</para>
<!-- 10 -->
<para>
<systemitem class="service">nova-conductor</systemitem> picks
up the request from the queue.
</para>
</listitem>
<listitem>
<!-- 11 -->
<para>
<systemitem class="service">nova-conductor</systemitem>
interacts with <systemitem
class="service">nova-database</systemitem>.
</para>
<para>
<systemitem class="service">nova-conductor</systemitem>
returns the instance information.
</para>
<para>
<systemitem class="service">nova-compute</systemitem> picks up the
instance information from the queue.
</para>
</listitem>
<listitem>
<!-- 12 -->
<para>
<systemitem class="service">nova-compute</systemitem> performs
the REST call by passing the auth-token to <systemitem
class="service">glance-api</systemitem>. Then, <systemitem
class="service">nova-compute</systemitem> uses the Image ID to
retrieve the Image URI from the Image Service, and loads the
image from the image storage.
</para>
</listitem>
<listitem>
<para>
<!-- 13 -->
<systemitem class="service">glance-api</systemitem> validates
the auth-token with keystone.
</para>
<para>
<systemitem class="service">nova-compute</systemitem> gets the
image metadata.
</para>
</listitem>
<listitem>
<para>
<!-- 14 -->
<systemitem class="service">nova-compute</systemitem> performs
the REST-call by passing the auth-token to Network API to
allocate and configure the network so that the instance gets
the IP address.
</para>
</listitem>
<listitem>
<!-- 15 -->
<para>
<systemitem class="service">neutron-server</systemitem>
validates the auth-token with keystone.
</para>
<para>
<systemitem class="service">nova-compute</systemitem>
retrieves the network info.
</para>
</listitem>
<listitem>
<para>
<!-- 16 -->
<systemitem class="service">nova-compute</systemitem> performs
the REST call by passing the auth-token to Volume API to attach
volumes to the instance.
</para>
</listitem>
<listitem>
<para>
<!-- 17 -->
<systemitem class="service">cinder-api</systemitem> validates
the auth-token with keystone.
</para>
<para>
<systemitem class="service">nova-compute</systemitem> retrieves the
block storage info.
</para>
</listitem>
<listitem>
<para>
<systemitem class="service">nova-compute</systemitem>
generates data for the hypervisor driver and executes the
request on the hypervisor (via libvirt or API).
</para>
</listitem>
</orderedlist>
<figure>
<title>Nova VM Provisioning</title>
<title>Nova VM provisioning</title>
<mediaobject>
<imageobject>
<imagedata fileref="figures/image02.png"/>