You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

This article summarizes the steps required to upgrade from the newton release to the ocata release of openstack.

Prerequisites:

  • This documents expects that your cloud is deployed with the latest newton tag(vN.1.0) of the ntnuopenstack repository.
  • Your cloud is designed with one of the two architectures:
    • Each openstack project have their own VM(s) for their services
    • All openstack services is deployed on 3 physical controllers
  • You have a recent mysql backup in case things go south.

VM-based architecture

If you use the VM based infrastructure you have the luxury of upgrading one service at a time and test that the upgrade works before doing the next service. This allows for ~zero downtime. If the services are redundantly deployed it is also very easy to do a rollback.

The recommended order to upgrade the services are listed below:

Keystone

  1. Run puppet with the ocata modules/tags
  2. Run apt-get dist-upgrade
    1. If it fails, verify that /etc/mysql/my.cnf.fallback exists. If it doesnt, create it with the content "!includedir /etc/mysql/conf.d/"
  3. Run puppet again
  4. Perform the DB sync
    1. keystone-manage db_sync
  5. Restart keystone services

Cinder

  1. Run puppet with the ocata modules/tags
  2. Run apt-get dist-upgrade
  3. Perform the DB sync
    1. cinder-manage db sync
  4. Restart cinder services

Glance

  1. Run puppet with the ocata modules/tags
  2. Run apt-get dist-upgrade
  3. Perform the DB sync
    1. glance-manage db sync
  4. Restart glance services

Neutron

On the API node:

  1. Run puppet with the ocata modules/tags
  2. Run apt-get dist-upgrade
  3. Perform the DB sync
    1. neutron-db-manage upgrade head
  4. Restart neutron services

On the network node:

  1. Run puppet with the ocata modules/tags
  2. Run apt-get dist-upgrade
  3. Run puppet with the ocata modules/tags
  4. Restart neutron services

Nova

Create nova cells database on a mysql host:

create database nova_cell0;
grant all privileges on nova_cell0.* TO 'nova'@'<mgmt-nett>' IDENTIFIED BY 'NOVA DB PASSORD';
grant all privileges on nova_cell0.* TO 'nova'@'localhost' IDENTIFIED BY 'NOVA DB PASSORD';

On the services-node:

# nova-manage cell_v2 simple_cell_setup --transport-url rabbit://rabbit:<KANINPASSORD>@<KANIN-IP>/

 

On the API node:

  1. Run puppet with the ocata modules/tags
  2. Run apt-get dist-upgrade
  3. Run puppet again
  4. Perform the DB sync
    1. nova-manage db sync
    2. nova-manage api_db sync
  5. Restart nova services

On the services node:

  1. Run puppet with the ocata modules/tags
  2. Run apt-get dist-upgrade
  3. Run puppet again
  4. Restart nova services

Heat

On the API node:

  1. Run puppet with the ocata modules/tags
  2. Run apt-get dist-upgrade
  3. Run puppet again
  4. Perform the DB sync
    1. nova-manage db sync
    2. nova-manage api_db sync
  5. Restart heat services

On the engine node:

  1. Run puppet with the ocata modules/tags
  2. Run apt-get dist-upgrade
  3. Run puppet again
  4. Restart heat services

Horizon

  1. Run puppet with the ocata modules/tags
  2. Run apt-get dist-upgrade
  3. Run puppet again

Controller based architecture

On the controller-based architecture there is a lot less control of order etc. We are thus recommending the following approach:

  1. Stop puppet on all controllers, and stop all openstack services
  2. Select one controller to be the first one to go:
    1. Run puppet with the ocata modules/tags
    2. Perform a dist-upgrade
    3. Sync databases
      1. keystone-manage db_sync
      2. cinder-manage db sync
      3. glance-manage db syncneutron-db-manage upgrade head
      4. nova-manage db sync
      5. nova-manage api_db sync
    4. Run puppet again
    5. Restart all services.
    6. Verify successful upgrade
  3. Upgrade the next two controllers, without step c: sync databases.

Compute-nodes

When controllers etc. are upgraded, it is time to do the same on the comute-nodes. Compute nodes are simple to upgrade:

  1. Run puppet with the ocata modules/tags
    1. This puppet-run will fail, but it will manage to do enough... (smile)
  2. Perform a dist-upgrade
  3. Run puppet again
  4. Restart openstack services

 

  • No labels