Restructured upgrade sections in the Operations Guide

Restructured content in the Havana to Icehouse upgrade for
RHEL sections

Change-Id: I57b4ce31baa5ade5bbf22b5353327ad8d1587112
backport: none
Partial-Bug: #1217503
This commit is contained in:
darrenchan 2014-12-23 16:31:05 +11:00
parent d236c219e8
commit e7abe7f990

View File

@ -1395,8 +1395,8 @@ rabbit_password = <replaceable>RABBIT_PASS</replaceable></programlisting>
<step><para>Upgrade the database:</para> <step><para>Upgrade the database:</para>
<screen><prompt>#</prompt> <userinput>neutron-db-manage --config-file /etc/neutron/neutron.conf \ <screen><prompt>#</prompt> <userinput>neutron-db-manage --config-file /etc/neutron/neutron.conf \
--config-file /etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini stamp havana</userinput> --config-file /etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini stamp havana</userinput>
<prompt>#</prompt> <userinput>neutron-db-manage --config-file /etc/neutron/neutron.conf \ <prompt>#</prompt> <userinput>neutron-db-manage --config-file /etc/neutron/neutron.conf \
--config-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade icehouse</userinput></screen> --config-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade icehouse</userinput></screen>
</step> </step>
<step><para>Perform the conversion from OVS to ML2:</para> <step><para>Perform the conversion from OVS to ML2:</para>
<screen><prompt>#</prompt> <userinput>python -m neutron.db.migration.migrate_to_ml2 openvswitch \</userinput></screen> <screen><prompt>#</prompt> <userinput>python -m neutron.db.migration.migrate_to_ml2 openvswitch \</userinput></screen>
@ -1541,8 +1541,8 @@ service_plugins = router</programlisting>
<screen><prompt>#</prompt> <userinput>service cinder-volume restart</userinput></screen> <screen><prompt>#</prompt> <userinput>service cinder-volume restart</userinput></screen>
</step> </step>
</procedure> </procedure>
</section>
</section> </section>
</section>
<section xml:id="upgrades_havana-icehouse-rhel"> <section xml:id="upgrades_havana-icehouse-rhel">
<title>How to Perform an Upgrade from Havana to Icehouse—Red Hat <title>How to Perform an Upgrade from Havana to Icehouse—Red Hat
@ -1573,19 +1573,60 @@ service_plugins = router</programlisting>
</section> </section>
<section xml:id="upgrade_icehouse-rhel-considerations"> <section xml:id="upgrade_icehouse-rhel-considerations">
<title>Upgrade Considerations</title> <title>Upgrade Considerations</title>
<para>Always review the <link <itemizedlist>
xlink:href="https://wiki.openstack.org/wiki/ReleaseNotes/Icehouse" <listitem>
>release notes</link> before performing an upgrade to learn <para>Review the <link
about newly available features that you might want to enable xlink:href="https://wiki.openstack.org/wiki/ReleaseNotes/Icehouse"
and deprecated features that you should disable.</para> >Icehouse Release Notes</link> before you upgrade to learn
about new features that you might want to enable and
deprecated features that you should disable.</para>
</listitem>
<listitem>
<para>Consider adopting conventions associated with newer
configuration files and merging them with your existing
configuration files after completing the upgrade process.
You can find newer versions of existing configuration files
with the following command:</para>
<screen><prompt>#</prompt> <userinput>find /etc -name *.rpmnew</userinput></screen>
</listitem>
<listitem>
<para>Icehouse disables file injection by default per the
<link
xlink:href="https://wiki.openstack.org/wiki/ReleaseNotes/Icehouse"
>Icehouse Release Notes</link>.</para>
<para>If you plan to deploy Icehouse in stages, you must
disable file injection on all compute nodes that remain on
Havana. This is done by editing the <filename>/etc/nova/nova-compute.conf</filename>
file:</para>
<programlisting language="ini">[libvirt]
...
libvirt_inject_partition = -2</programlisting>
</listitem>
<listitem>
<para>You must convert the configuration for your
environment contained in the
<filename>/etc/neutron/neutron.conf</filename> and
<filename>/etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini</filename>
files from OVS to ML2. For example, the <link
xlink:href="http://docs.openstack.org/icehouse/install-guide/install/apt/content/"
><citetitle>OpenStack Installation
Guide</citetitle></link> covers <link
xlink:href="http://docs.openstack.org/icehouse/install-guide/install/apt/content/section_neutron-networking-ml2.html"
>ML2 plug-in configuration</link> using GRE
tunnels.</para>
<para>Keep the OVS plug-in packages and configuration files
until you verify the upgrade.</para>
</listitem>
</itemizedlist>
</section> </section>
<section xml:id="upgrade_icehouse-rhel-backup"> <section xml:id="upgrade_icehouse-rhel-backup">
<title>Perform a Backup</title> <title>Perform a Backup</title>
<para>Save the configuration files on all nodes, as shown <procedure>
here:</para> <step>
<screen><prompt>#</prompt> <userinput>for i in keystone glance nova cinder neutron openstack-dashboard; \ <para>Save the configuration files on all nodes:</para>
do mkdir $i-havana; \ <screen><prompt>#</prompt> <userinput>for i in keystone glance nova cinder neutron openstack-dashboard; \
done</userinput> do mkdir $i-havana; \
done</userinput>
<prompt>#</prompt> <userinput>for i in keystone glance nova cinder neutron openstack-dashboard; \ <prompt>#</prompt> <userinput>for i in keystone glance nova cinder neutron openstack-dashboard; \
do cp -r /etc/$i/* $i-havana/; \ do cp -r /etc/$i/* $i-havana/; \
done</userinput></screen> done</userinput></screen>
@ -1593,6 +1634,8 @@ service_plugins = router</programlisting>
<para>You can modify this example script on each node to <para>You can modify this example script on each node to
handle different services.</para> handle different services.</para>
</note> </note>
</step>
<step>
<para>Back up all databases on the controller:</para> <para>Back up all databases on the controller:</para>
<screen><prompt>#</prompt> <userinput>mysqldump -u root -p --opt --add-drop-database --all-databases &gt; havana-db-backup.sql</userinput></screen> <screen><prompt>#</prompt> <userinput>mysqldump -u root -p --opt --add-drop-database --all-databases &gt; havana-db-backup.sql</userinput></screen>
<note> <note>
@ -1604,108 +1647,82 @@ service_plugins = router</programlisting>
><citetitle>OpenStack Installation ><citetitle>OpenStack Installation
Guide</citetitle></link>.</para> Guide</citetitle></link>.</para>
</note> </note>
</step>
</procedure>
</section> </section>
<section xml:id="upgrade_icehouse-rhel-manage-repos"> <section xml:id="upgrade_icehouse-rhel-manage-repos">
<title>Manage Repositories</title> <title>Manage Repositories</title>
<para>On all nodes, remove the repository for Havana packages <procedure>
and add the repository for Icehouse packages:</para> <para>Complete the following actions on all nodes.</para>
<screen><prompt>#</prompt> <userinput>yum erase rdo-release-havana</userinput> <step>
<prompt>#</prompt> <userinput>yum install http://repos.fedorapeople.org/repos/openstack/openstack-icehouse/ \ <para>Remove the repository for Havana packages:</para>
<screen><prompt>#</prompt> <userinput>yum erase rdo-release-havana</userinput></screen>
</step>
<step>
<para>Add the repository for Icehouse packages:</para>
<screen><prompt>#</prompt> <userinput>yum install http://repos.fedorapeople.org/repos/openstack/openstack-icehouse/ \
rdo-release-icehouse-3.noarch.rpm</userinput></screen> rdo-release-icehouse-3.noarch.rpm</userinput></screen>
<warning> </step>
<step>
<para>Disable any automatic package updates.</para> <para>Disable any automatic package updates.</para>
</warning>
<note> <note>
<para>Consider checking for newer versions of the <link <para>You should check for newer versions of the <link
xlink:href="http://repos.fedorapeople.org/repos/openstack/openstack-icehouse/" xlink:href="http://repos.fedorapeople.org/repos/openstack/openstack-icehouse/"
>Icehouse repository</link>.</para> >Icehouse repository</link>.</para>
</note> </note>
</section> </step>
<section xml:id="upgrade_icehouse-rhel-notes"> </procedure>
<title>Upgrade Notes</title>
<itemizedlist>
<listitem>
<para>Disable Compute file injection:</para>
<para>Icehouse disables file injection by default per the
<link
xlink:href="https://wiki.openstack.org/wiki/ReleaseNotes/Icehouse"
>release notes</link>.</para>
<para>If you plan to deploy Icehouse in stages, you must
disable file injection on all compute nodes that will
remain on Havana.</para>
<para>Edit the
<filename>/etc/nova/nova-compute.conf</filename>
file:</para>
<programlisting language="ini">[libvirt]
...
libvirt_inject_partition = -2</programlisting>
</listitem>
<listitem>
<para>Convert from OVS to ML2 plug-in:</para>
<para>You must convert the configuration for your
environment contained in the
<filename>/etc/neutron/neutron.conf</filename> and
<filename>/etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini</filename>
files from OVS to ML2. For example, the <link
xlink:href="http://docs.openstack.org/icehouse/install-guide/install/yum/content/"
><citetitle>OpenStack Installation
Guide</citetitle></link> covers <link
xlink:href="http://docs.openstack.org/icehouse/install-guide/install/yum/content/section_neutron-networking-ml2.html"
>ML2 plug-in configuration</link> using GRE
tunnels.</para>
<para>We recommend keeping the OVS plug-in packages and
configuration files until you verify the upgrade.</para>
</listitem>
</itemizedlist>
</section> </section>
<section xml:id="upgrade_icehouse-rhel-controller-node"> <section xml:id="upgrade_icehouse-rhel-controller-node">
<title>Upgrade the Controller Node</title> <title>Upgrade the Controller Node</title>
<para>Upgrade packages on the controller node to Icehouse, as <procedure>
follows:</para> <step>
<para>Upgrade packages on the controller node to Icehouse:</para>
<screen><prompt>#</prompt> <userinput>yum upgrade</userinput></screen> <screen><prompt>#</prompt> <userinput>yum upgrade</userinput></screen>
<note> <note>
<para>The package manager appends <filename>.rpmnew</filename> <para>The package manager appends <filename>.rpmnew</filename>
to the end of newer versions of existing configuration to the end of newer versions of existing configuration
files. You should consider adopting conventions associated files.</para>
with the newer configuration files and merging them with
your existing configuration files after completing the
upgrade process. You can find newer versions of existing
configuration files with the following command:</para>
<screen><prompt>#</prompt> <userinput>find /etc -name *.rpmnew</userinput></screen>
</note> </note>
</step>
</procedure>
</section> </section>
<section xml:id="upgrade_icehouse-rhel-services"> <section xml:id="upgrade_icehouse-rhel-services">
<title>Upgrade Each Service</title> <title>Upgrade Each Service</title>
<para>The upgrade procedure for each service typically requires <para>The upgrade procedure for each service typically requires
that you stop the service, run the database synchronization that you stop the service, run the database synchronization
command to update the associated database, and start the command to update the associated database, and start the
service to apply the new configuration. You need administrator service to apply the new configuration. You will need administrator
privileges for these procedures. Some services require privileges for these procedures. Some services will require
additional steps.</para> additional steps.</para>
<itemizedlist> <procedure>
<listitem> <title>Upgrade OpenStack Identity</title>
<para>OpenStack Identity:</para> <step>
<para>Update the configuration file for compatibility with <para>Edit the <filename>/etc/keystone/keystone.conf</filename>
Icehouse.</para> file for compatibility for Icehouse:</para>
<para>Edit the <substeps>
<filename>/etc/keystone/keystone.conf</filename> <step><para>Add the <literal>[database]</literal> section.</para></step>
file:</para> <step><para>Move the <option>connection</option> key from
<para>Add the <literal>[database]</literal> section.</para> the<literal>[sql]</literal> section to the
<para>Move the <option>connection</option> key from the <literal>[database]</literal> section.</para></step>
<literal>[sql]</literal> section to the </substeps>
<literal>[database]</literal> section.</para> </step>
<para>Stop services, upgrade the database, and start <step><para>Stop the services:</para>
services.</para> <screen><prompt>#</prompt> <userinput>service openstack-keystone stop</userinput></screen>
<screen><prompt>#</prompt> <userinput>service openstack-keystone stop</userinput> <screen><prompt>#</prompt> <userinput>keystone-manage token_flush</userinput></screen>
<prompt>#</prompt> <userinput>keystone-manage token_flush</userinput> </step>
<prompt>#</prompt> <userinput>keystone-manage db_sync</userinput> <step><para>Upgrade the database:</para>
<prompt>#</prompt> <userinput>service openstack-keystone start</userinput></screen> <screen><prompt>#</prompt> <userinput>keystone-manage db_sync</userinput></screen>
</listitem> </step>
<listitem> <step><para>Start the services:</para>
<para>OpenStack Image Service:</para> <screen><prompt>#</prompt> <userinput>service openstack-keystone start</userinput></screen>
<para>Before you upgrade the Image Service database, convert </step>
</procedure>
<procedure>
<title>OpenStack Image Service:</title>
<para>Before upgrading the Image Service database, you must convert
the character set for each table to UTF-8.</para> the character set for each table to UTF-8.</para>
<para>Use the MySQL client to run the following <step><para>Use the MySQL client to run the following
commands:</para> commands:</para>
<screen><prompt>#</prompt> <userinput>mysql -u root -p</userinput> <screen><prompt>#</prompt> <userinput>mysql -u root -p</userinput>
<prompt>mysql></prompt> <userinput>SET foreign_key_checks = 0;</userinput> <prompt>mysql></prompt> <userinput>SET foreign_key_checks = 0;</userinput>
@ -1722,70 +1739,80 @@ libvirt_inject_partition = -2</programlisting>
additional tables that you must convert to UTF-8 by additional tables that you must convert to UTF-8 by
using similar commands.</para> using similar commands.</para>
</note> </note>
<para>Update the configuration for compatibility with </step>
Icehouse.</para> <step>
<para>Edit the <para>Edit the <filename>/etc/glance/glance-api.conf</filename>
<filename>/etc/glance/glance-api.conf</filename> and and <filename>/etc/glance/glance-registry.conf</filename>
<filename>/etc/glance/glance-registry.conf</filename> files for compatibility with Icehouse:</para>
files:</para> <substeps>
<para>Add the <literal>[database]</literal> section.</para> <step><para>Add the <literal>[database]</literal> section.
<para>Rename the <option>sql_connection</option> key to </para></step>
<step><para>Rename the <option>sql_connection</option> key to
<option>connection</option> and move it to the <option>connection</option> and move it to the
<literal>[database]</literal> section.</para> <literal>[database]</literal> section.</para></step>
</substeps>
</step>
<step>
<para>Edit the <para>Edit the
<filename>/etc/glance/glance-api.conf</filename> <filename>/etc/glance/glance-api.conf</filename>
file:</para> file, and add the Qpid message broker keys to the
<para>Add Qpid message broker keys to the <literal>[DEFAULT]</literal> section:</para>
<literal>[DEFAULT]</literal> section.</para>
<programlisting language="ini">[DEFAULT] <programlisting language="ini">[DEFAULT]
... ...
rpc_backend = qpid rpc_backend = qpid
qpid_hostname = <replaceable>controller</replaceable></programlisting> qpid_hostname = <replaceable>controller</replaceable></programlisting>
</step>
<step><para>Stop the services:</para>
<para>Stop services, upgrade the database, and start <para>Stop services, upgrade the database, and start
services:</para> services:</para>
<screen><prompt>#</prompt> <userinput>service openstack-glance-api stop</userinput> <screen><prompt>#</prompt> <userinput>service openstack-glance-api stop</userinput>
<prompt>#</prompt> <userinput>service openstack-glance-registry stop</userinput> <prompt>#</prompt> <userinput>service openstack-glance-registry stop</userinput></screen>
<prompt>#</prompt> <userinput>glance-manage db_sync</userinput> </step>
<prompt>#</prompt> <userinput>service openstack-glance-api start</userinput> <step><para>Upgrade the database:</para>
<screen><prompt>#</prompt> <userinput>glance-manage db_sync</userinput></screen>
</step>
<step><para>Start the services:</para>
<screen><prompt>#</prompt> <userinput>service openstack-glance-api start</userinput>
<prompt>#</prompt> <userinput>service openstack-glance-registry start</userinput></screen> <prompt>#</prompt> <userinput>service openstack-glance-registry start</userinput></screen>
</listitem> </step>
<listitem> </procedure>
<para>OpenStack Compute:</para> <procedure>
<para>Update the configuration for compatibility with <title>Upgrading OpenStack Compute:</title>
Icehouse.</para> <step><para>Edit the <filename>/etc/nova/nova.conf</filename>
<para>Edit the <filename>/etc/nova/nova.conf</filename> file and change the <option>rpc_backend</option> key from
file:</para>
<para>Change the <option>rpc_backend</option> key from
<literal>nova.openstack.common.rpc.impl_qpid</literal> <literal>nova.openstack.common.rpc.impl_qpid</literal>
to <literal>qpid</literal>.</para> to <literal>qpid</literal>.</para></step>
<para>Edit the <filename>/etc/nova/api-paste.ini</filename> <step><para>Edit the <filename>/etc/nova/api-paste.ini</filename>
file:</para> file and comment out or remove any keys in the
<para>Comment out or remove any keys in the <literal>[filter:authtoken]</literal> section beneath
<literal>[filter:authtoken]</literal> section beneath
the <literal>paste.filter_factory = the <literal>paste.filter_factory =
keystoneclient.middleware.auth_token:filter_factory</literal> keystoneclient.middleware.auth_token:filter_factory</literal>
statement.</para> statement.</para></step>
<para>Stop services, upgrade the database, and start <step><para>Stop the services:</para>
services.</para>
<screen><prompt>#</prompt> <userinput>service openstack-nova-api stop</userinput> <screen><prompt>#</prompt> <userinput>service openstack-nova-api stop</userinput>
<prompt>#</prompt> <userinput>service openstack-nova-scheduler stop</userinput> <prompt>#</prompt> <userinput>service openstack-nova-scheduler stop</userinput>
<prompt>#</prompt> <userinput>service openstack-nova-conductor stop</userinput> <prompt>#</prompt> <userinput>service openstack-nova-conductor stop</userinput>
<prompt>#</prompt> <userinput>service openstack-nova-cert stop</userinput> <prompt>#</prompt> <userinput>service openstack-nova-cert stop</userinput>
<prompt>#</prompt> <userinput>service openstack-nova-consoleauth stop</userinput> <prompt>#</prompt> <userinput>service openstack-nova-consoleauth stop</userinput>
<prompt>#</prompt> <userinput>service openstack-nova-novncproxy stop</userinput> <prompt>#</prompt> <userinput>service openstack-nova-novncproxy stop</userinput></screen>
<prompt>#</prompt> <userinput>nova-manage db sync</userinput> </step>
<prompt>#</prompt> <userinput>service openstack-nova-api start</userinput> <step><para>Upgrade the database:</para>
<screen><prompt>#</prompt> <userinput>nova-manage db sync</userinput></screen>
</step>
<step><para>Start the services:</para>
<screen><prompt>#</prompt> <userinput>service openstack-nova-api start</userinput>
<prompt>#</prompt> <userinput>service openstack-nova-scheduler start</userinput> <prompt>#</prompt> <userinput>service openstack-nova-scheduler start</userinput>
<prompt>#</prompt> <userinput>service openstack-nova-conductor start</userinput> <prompt>#</prompt> <userinput>service openstack-nova-conductor start</userinput>
<prompt>#</prompt> <userinput>service openstack-nova-cert start</userinput> <prompt>#</prompt> <userinput>service openstack-nova-cert start</userinput>
<prompt>#</prompt> <userinput>service openstack-nova-consoleauth start</userinput> <prompt>#</prompt> <userinput>service openstack-nova-consoleauth start</userinput>
<prompt>#</prompt> <userinput>service openstack-nova-novncproxy start</userinput></screen> <prompt>#</prompt> <userinput>service openstack-nova-novncproxy start</userinput></screen>
</listitem> </step>
<listitem> </procedure>
<para>OpenStack Networking:</para> <procedure>
<title>Upgrade OpenStack Networking</title>
<para>Before upgrading the Networking database, you must <para>Before upgrading the Networking database, you must
convert the character set for each table to UTF-8.</para> convert the character set for each table to UTF-8.</para>
<para>Use the MySQL client to execute the following <step><para>Use the MySQL client to execute the following
commands:</para> commands:</para>
<screen><prompt>#</prompt> <userinput>mysql -u root -p</userinput> <screen><prompt>#</prompt> <userinput>mysql -u root -p</userinput>
<prompt>mysql></prompt> <userinput>USE neutron;</userinput> <prompt>mysql></prompt> <userinput>USE neutron;</userinput>
@ -1827,43 +1854,58 @@ qpid_hostname = <replaceable>controller</replaceable></programlisting>
you must also convert to UTF-8 by using similar you must also convert to UTF-8 by using similar
commands.</para> commands.</para>
</note> </note>
<para>Install the ML2 plug-in package:</para> </step>
<screen><prompt>#</prompt> <userinput>yum install openstack-neutron-ml2</userinput></screen> <step><para>Install the ML2 plug-in package:</para>
<para>Populate the <screen><prompt>#</prompt> <userinput>yum install openstack-
neutron-ml2</userinput></screen></step>
<step><para>Populate the
<filename>/etc/neutron/plugins/ml2/ml2_conf.ini</filename> <filename>/etc/neutron/plugins/ml2/ml2_conf.ini</filename>
file with the equivalent configuration for your file with the equivalent configuration for your
environment. Do not edit the environment.</para>
<filename>/etc/neutron/neutron.conf</filename> file <note><para>Do not edit the <filename>/etc/neutron/neutron.conf</filename>
until after the conversion steps.</para> file until after the conversion steps.</para></note>
<para>Change the </step>
<filename>/etc/neutron/plugin.ini</filename> symbolic <step><para>Change the <filename>/etc/neutron/plugin.ini</filename>
link to reference symbolic link to reference
<filename>/etc/neutron/plugins/ml2/ml2_conf.ini</filename>.</para> <filename>/etc/neutron/plugins/ml2/ml2_conf.ini</filename>.</para></step>
<para>Stop services, upgrade the database, and perform the <step><para>Stop services:</para>
conversion from OVS to ML2.</para> <screen><prompt>#</prompt> <userinput>service neutron-server stop</userinput></screen>
<para>Replace <replaceable>NEUTRON_DBPASS</replaceable> with </step>
the password you chose for the database.</para> <step><para>Upgrade the database:</para>
<warning> <screen><prompt>#</prompt> <userinput>neutron-db-manage --config-file /etc/neutron/neutron.conf \
<para>We highly recommend that you perform a database --config-file /etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini stamp havana</userinput>
backup prior to executing the following commands as the
conversion script cannot roll back.</para>
</warning>
<screen><prompt>#</prompt> <userinput>service neutron-server stop</userinput>
<prompt>#</prompt> <userinput>neutron-db-manage --config-file /etc/neutron/neutron.conf \ <prompt>#</prompt> <userinput>neutron-db-manage --config-file /etc/neutron/neutron.conf \
--config-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade icehouse</userinput></screen></step>
<step><para>Perform the conversion from OVS to ML2:</para>
<screen><prompt>#</prompt> <userinput>python -m neutron.db.migration.migrate_to_ml2 openvswitch \</userinput></screen>
</step>
<step><para>Replace <replaceable>NEUTRON_DBPASS</replaceable> with
the password you chose for the database.</para>
<screen><userinput>mysql://neutron:NEUTRON_DBPASS@controller/neutron</userinput></screen>
</step>
<step>
<warning>
<para>Because the conversion script cannot roll back,
you must perform a database backup prior to executing
the following commands.</para>
</warning>
<para>Stop the service:</para>
<screen><prompt>#</prompt> <userinput>service neutron-server stop</userinput></screen>
</step>
<step><para>Upgrade the database:</para>
<screen><prompt>#</prompt> <userinput>neutron-db-manage --config-file /etc/neutron/neutron.conf \
--config-file /etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini stamp havana</userinput> --config-file /etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini stamp havana</userinput>
<prompt>#</prompt> <userinput>neutron-db-manage --config-file /etc/neutron/neutron.conf \ <prompt>#</prompt> <userinput>neutron-db-manage --config-file /etc/neutron/neutron.conf \
--config-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade icehouse</userinput> --config-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade icehouse</userinput></screen>
<prompt>#</prompt> <userinput>python -m neutron.db.migration.migrate_to_ml2 openvswitch \ </step>
<step><para>Perform the conversion from OVS to ML2:</para>
<screen><prompt>#</prompt> <userinput>python -m neutron.db.migration.migrate_to_ml2 openvswitch \
mysql://neutron:NEUTRON_DBPASS@controller/neutron</userinput></screen> mysql://neutron:NEUTRON_DBPASS@controller/neutron</userinput></screen>
<para>Edit the </step>
<step><para>Edit the
<filename>/etc/neutron/neutron.conf</filename> file to <filename>/etc/neutron/neutron.conf</filename> file to
use the ML2 plug-in and enable network change use the ML2 plug-in and enable network change
notifications:</para> notifications:</para>
<para>Replace <replaceable>SERVICE_TENANT_ID</replaceable>
with the service tenant identifier (id) in the Identity
service and <replaceable>NOVA_PASS</replaceable> with the
password you chose for the <literal>nova</literal> user in
the Identity service.</para>
<programlisting language="ini">[DEFAULT] <programlisting language="ini">[DEFAULT]
... ...
core_plugin = ml2 core_plugin = ml2
@ -1877,141 +1919,165 @@ nova_admin_tenant_id = <replaceable>SERVICE_TENANT_ID</replaceable>
nova_admin_password = <replaceable>NOVA_PASS</replaceable> nova_admin_password = <replaceable>NOVA_PASS</replaceable>
nova_admin_auth_url = http://<replaceable>controller</replaceable>:35357/v2.0 nova_admin_auth_url = http://<replaceable>controller</replaceable>:35357/v2.0
</programlisting> </programlisting>
<para>Start Networking services.</para> <para>Replace <replaceable>SERVICE_TENANT_ID</replaceable>
with the service tenant identifier (id) in the Identity
service and <replaceable>NOVA_PASS</replaceable> with the
password you chose for the <literal>nova</literal> user in
the Identity service.</para>
</step>
<step><para>Start Networking services.</para>
<screen><prompt>#</prompt> <userinput>service neutron-server start</userinput></screen> <screen><prompt>#</prompt> <userinput>service neutron-server start</userinput></screen>
</listitem> </step>
<listitem> </procedure>
<para>OpenStack Block Storage:</para> <procedure>
<para>Stop services, upgrade the database, and start <title>Upgrade OpenStack Block Storage</title>
services.</para> <step><para>Stop services:</para>
<screen><prompt>#</prompt> <userinput>service openstack-cinder-api stop</userinput> <screen><prompt>#</prompt> <userinput>service openstack-cinder-api stop</userinput>
<prompt>#</prompt> <userinput>service openstack-cinder-volume stop</userinput> <prompt>#</prompt> <userinput>service openstack-cinder-volume stop</userinput>
<prompt>#</prompt> <userinput>service openstack-cinder-scheduler stop</userinput> <prompt>#</prompt> <userinput>service openstack-cinder-scheduler stop</userinput></screen>
<prompt>#</prompt> <userinput>cinder-manage db sync</userinput> </step>
<prompt>#</prompt> <userinput>service openstack-cinder-api start</userinput> <step><para>Upgrade the database:</para>
<screen><prompt>#</prompt> <userinput>cinder-manage db sync</userinput></screen>
</step>
<step><para>Start services:</para>
<screen><prompt>#</prompt> <userinput>service openstack-cinder-api start</userinput>
<prompt>#</prompt> <userinput>service openstack-cinder-volume start</userinput> <prompt>#</prompt> <userinput>service openstack-cinder-volume start</userinput>
<prompt>#</prompt> <userinput>service openstack-cinder-scheduler start</userinput></screen> <prompt>#</prompt> <userinput>service openstack-cinder-scheduler start</userinput></screen>
</listitem> </step>
<listitem> </procedure>
<para>Dashboard:</para> <procedure>
<para>Update the configuration for compatibility with <title>Update Dashboard</title>
Icehouse.</para> <step><para>Edit the <filename>/etc/openstack-dashboard/local_settings</filename>
<para>Edit the file and change the <option>OPENSTACK_KEYSTONE_DEFAULT_ROLE</option>
<filename>/etc/openstack-dashboard/local_settings</filename> key from <literal>"Member"</literal> to <literal>"_member_"</literal>
file:</para> .</para></step>
<para>Change the <step><para>Restart Dashboard services:</para>
<option>OPENSTACK_KEYSTONE_DEFAULT_ROLE</option> key
from <literal>"Member"</literal> to
<literal>"_member_"</literal>.</para>
<para>Restart Dashboard services.</para>
<screen><prompt>#</prompt> <userinput>service httpd restart</userinput></screen> <screen><prompt>#</prompt> <userinput>service httpd restart</userinput></screen>
</listitem> </step>
</itemizedlist> </procedure>
<para>The controller node update is complete. Now you can <para>The controller node update is complete. Now you can
upgrade the remaining nodes.</para> upgrade the remaining nodes.</para>
</section> </section>
<section xml:id="upgrade_icehouse-rhel-network-node"> <section xml:id="upgrade_icehouse-rhel-network-node">
<title>Upgrade the Network Node</title> <title>Upgrade the Network Node</title>
<para>Upgrade packages on the network node to Icehouse:</para> <procedure>
<step><para>Upgrade packages on the network node to Icehouse:</para>
<note> <note>
<para>Make sure you have removed the repository for Havana <para>Make sure you have removed the repository for Havana
packages and added the repository for Icehouse packages and added the repository for Icehouse
packages.</para> packages.</para>
</note> </note>
<screen><prompt>#</prompt> <userinput>yum upgrade</userinput></screen> <screen><prompt>#</prompt> <userinput>yum upgrade</userinput></screen>
<para>Install the ML2 plug-in package:</para> </step>
<step><para>Install the ML2 plug-in package:</para>
<screen><prompt>#</prompt> <userinput>yum install openstack-neutron-ml2</userinput></screen> <screen><prompt>#</prompt> <userinput>yum install openstack-neutron-ml2</userinput></screen>
<para>Edit the <filename>/etc/neutron/neutron.conf</filename> </step>
<step><para>Edit the <filename>/etc/neutron/neutron.conf</filename>
file to use the ML2 plug-in:</para> file to use the ML2 plug-in:</para>
<programlisting language="ini">[DEFAULT] <programlisting language="ini">[DEFAULT]
core_plugin = ml2 core_plugin = ml2
service_plugins = router</programlisting> service_plugins = router</programlisting>
<para>Populate the </step>
<step><para>Populate the
<filename>/etc/neutron/plugins/ml2/ml2_conf.ini</filename> <filename>/etc/neutron/plugins/ml2/ml2_conf.ini</filename>
file with the equivalent configuration for your file with the equivalent configuration for your
environment.</para> environment.</para></step>
<para>Change the <filename>/etc/neutron/plugin.ini</filename> <step><para>Change the <filename>/etc/neutron/plugin.ini</filename>
symbolic link to reference symbolic link to reference
<filename>/etc/neutron/plugins/ml2/ml2_conf.ini</filename>.</para> <filename>/etc/neutron/plugins/ml2/ml2_conf.ini</filename>
<para>Clean the active OVS configuration:</para> .</para></step>
<step><para>Clean the active OVS configuration:</para>
<screen><prompt>#</prompt> <userinput>service neutron-ovs-cleanup restart</userinput></screen> <screen><prompt>#</prompt> <userinput>service neutron-ovs-cleanup restart</userinput></screen>
<para>Restart Networking services:</para> </step>
<step><para>Restart Networking services:</para>
<screen><prompt>#</prompt> <userinput>service neutron-dhcp-agent restart</userinput> <screen><prompt>#</prompt> <userinput>service neutron-dhcp-agent restart</userinput>
<prompt>#</prompt> <userinput>service neutron-l3-agent restart</userinput> <prompt>#</prompt> <userinput>service neutron-l3-agent restart</userinput>
<prompt>#</prompt> <userinput>service neutron-metadata-agent restart</userinput> <prompt>#</prompt> <userinput>service neutron-metadata-agent restart</userinput>
<prompt>#</prompt> <userinput>service neutron-openvswitch-agent restart</userinput></screen> <prompt>#</prompt> <userinput>service neutron-openvswitch-agent restart</userinput></screen>
</step>
</procedure>
</section> </section>
<section xml:id="upgrade_icehouse-rhel-compute-nodes"> <section xml:id="upgrade_icehouse-rhel-compute-nodes">
<title>Upgrade the Compute Nodes</title> <title>Upgrade the Compute Nodes</title>
<para>Upgrade packages on the compute nodes to Icehouse:</para> <procedure>
<step><para>Upgrade packages on the compute nodes to Icehouse:</para>
<note> <note>
<para>Make sure you have removed the repository for Havana <para>Make sure you have removed the repository for Havana
packages and added the repository for Icehouse packages and added the repository for Icehouse
packages.</para> packages.</para>
</note> </note>
<screen><prompt>#</prompt> <userinput>yum upgrade</userinput></screen> <screen><prompt>#</prompt> <userinput>yum upgrade</userinput></screen>
<para>Install the ML2 plug-in package:</para> </step>
<step><para>Install the ML2 plug-in package:</para>
<screen><prompt>#</prompt> <userinput>yum install openstack-neutron-ml2</userinput></screen> <screen><prompt>#</prompt> <userinput>yum install openstack-neutron-ml2</userinput></screen>
<para>Edit the <filename>/etc/neutron/neutron.conf</filename> </step>
<step><para>Edit the <filename>/etc/neutron/neutron.conf</filename>
file to use the ML2 plug-in:</para> file to use the ML2 plug-in:</para>
<programlisting language="ini">[DEFAULT] <programlisting language="ini">[DEFAULT]
core_plugin = ml2 core_plugin = ml2
service_plugins = router</programlisting> service_plugins = router</programlisting>
<para>Populate the </step>
<step><para>Populate the
<filename>/etc/neutron/plugins/ml2/ml2_conf.ini</filename> <filename>/etc/neutron/plugins/ml2/ml2_conf.ini</filename>
file with the equivalent configuration for your file with the equivalent configuration for your
environment.</para> environment.</para>
<para>Change the <filename>/etc/neutron/plugin.ini</filename> </step>
<step><para>Change the <filename>/etc/neutron/plugin.ini</filename>
symbolic link to reference symbolic link to reference
<filename>/etc/neutron/plugins/ml2/ml2_conf.ini</filename>.</para> <filename>/etc/neutron/plugins/ml2/ml2_conf.ini</filename>.</para>
<para>Clean the active OVS configuration:</para> </step>
<step><para>Clean the active OVS configuration:</para>
<screen><prompt>#</prompt> <userinput>service neutron-ovs-cleanup restart</userinput></screen> <screen><prompt>#</prompt> <userinput>service neutron-ovs-cleanup restart</userinput></screen>
<para>Restart Networking services:</para> </step>
<step><para>Restart Networking services:</para>
<screen><prompt>#</prompt> <userinput>service neutron-openvswitch-agent restart</userinput></screen> <screen><prompt>#</prompt> <userinput>service neutron-openvswitch-agent restart</userinput></screen>
<para>Restart Compute services:</para> </step>
<step><para>Restart Compute services:</para>
<screen><prompt>#</prompt> <userinput>service openstack-nova-compute restart</userinput></screen> <screen><prompt>#</prompt> <userinput>service openstack-nova-compute restart</userinput></screen>
</step>
</procedure>
</section> </section>
<section xml:id="upgrade_icehouse-rhel-storage-nodes"> <section xml:id="upgrade_icehouse-rhel-storage-nodes">
<title>Upgrade the Storage Nodes</title> <title>Upgrade the Storage Nodes</title>
<para>Upgrade packages on the storage nodes to Icehouse:</para> <procedure>
<step><para>Upgrade packages on the storage nodes to Icehouse:</para>
<note> <note>
<para>Make sure you have removed the repository for Havana <para>Make sure you have removed the repository for Havana
packages and added the repository for Icehouse packages and added the repository for Icehouse
packages.</para> packages.</para>
</note> </note>
<screen><prompt>#</prompt> <userinput>yum upgrade</userinput></screen> <screen><prompt>#</prompt> <userinput>yum upgrade</userinput></screen>
<para>Restart Block Storage services.</para> </step>
<step><para>Restart Block Storage service:</para>
<screen><prompt>#</prompt> <userinput>service openstack-cinder-volume restart</userinput></screen> <screen><prompt>#</prompt> <userinput>service openstack-cinder-volume restart</userinput></screen>
</section> </step>
</procedure>
</section>
</section> </section>
<section xml:id="ops_upgrades-final-steps"> <section xml:id="ops_upgrades-final-steps">
<title>Cleaning Up and Final Configuration File Updates</title> <title>Cleaning Up and Final Configuration File Updates</title>
<para>On all distributions, you must perform some final tasks to <para>On all distributions, you must perform some final tasks to
complete the upgrade process.<indexterm class="singular"> complete the upgrade process.<indexterm class="singular">
<primary>upgrading</primary> <primary>upgrading</primary>
<secondary>final steps</secondary> <secondary>final steps</secondary>
</indexterm></para> </indexterm></para>
<procedure>
<para>Decrease DHCP timeouts by modifying <step><para>Decrease DHCP timeouts by modifying
<filename>/etc/nova/nova.conf</filename> on the compute nodes <filename>/etc/nova/nova.conf</filename> on the compute nodes
back to the original value for your environment.</para> back to the original value for your environment.</para></step>
<step><para>Update all <filename>.ini</filename> files to match
<para>Update all <filename>.ini</filename> files to match
passwords and pipelines as required for Havana in your passwords and pipelines as required for Havana in your
environment.</para> environment.</para></step>
<step><para>After migration, users see different results from
<para>After a migration, your users see different results from
<command>nova image-list</command> and <command>glance <command>nova image-list</command> and <command>glance
image-list</command> unless you match policies for access to image-list</command>. To ensure users see the same images in
private images. To do so, edit the the list commands, edit the <filename>/etc/glance/policy.json</filename>
<filename>/etc/glance/policy.json</filename> and and <filename>/etc/nova/policy.json</filename> files to contain
<filename>/etc/nova/policy.json</filename> files to contain
<code>"context_is_admin": "role:admin"</code>, which limits <code>"context_is_admin": "role:admin"</code>, which limits
access to private images for projects.</para> access to private images for projects.</para></step>
<step><para>Thoroughly test the environment. Then, let your users
<para>Thoroughly test the environment. Then, let your users know know that their cloud is running normally again.</para></step>
that their cloud is running normally again.</para> </procedure>
</section> </section>
<section xml:id="ops_upgrades-roll-back"> <section xml:id="ops_upgrades-roll-back">