This section describes how to prepare to upgrade from any previous version of Abiquo to the current version. Please contact Abiquo Support for further information.
1. Prevent cloud users from performing VM operations
- In the UI Infrastructure tab, select each physical machine and click Disable
- Using the API, set the state of each physical machine to DISABLED
2. Check for operations in progress on the platform
Check that the Abiquo RabbitMQ queues are empty. The number of messages in all queues must be 0:
# rabbitmqctl list_queues messages name Listing queues ... 0 abiquo.am.notifications 0 abiquo.bpm.notifications 0 abiquo.datacenter.requests.ADatacenter.bpm 0 abiquo.datacenter.requests.ADatacenter.virtualfactory 0 abiquo.ha.tasks 0 abiquo.nodecollector.notifications 0 abiquo.pcrsync.messages 0 abiquo.pcrsync.parking-expect-no-consumers 0 abiquo.scheduler.fast.requests 0 abiquo.scheduler.requests 0 abiquo.scheduler.slow.requests 0 abiquo.tracer.traces 0 abiquo.virtualfactory.notifications 0 abiquo.virtualmachines.definitionsyncs 0 abiquo.vsm.eventsynk ...done.
On standard environment, the RabbitMQ service is in the Abiquo API server. Depending on the environment, this will be the Abiquo Monolithic or the Abiquo Server appliance.
Check for any active V2V conversions by checking for the V2V or Mechadora processes
$ ps aux | grep v2v $ ps aux | grep mechadora
3. Stop platform services
Stop the API on the API Server or Monolithic Server
systemctl stop abiquo-tomcat
Stop the UI on the API Server or Monolithic Server or dedicated UI Server
systemctl stop httpd
Stop Remote Services server
systemctl stop abiquo-tomcat
Stop the database on the Monolithic Server or Database server.
systemctl stop mariadb
For a datanode configuration, you will also need to stop the Galera cluster. For more details, see Stop and start HA configuration
Stop RabbitMQ (on the Monolithic Server or API Server or Datanode)
systemctl stop rabbitmq-server
- V2V Server -
You do not need to stop anything because the BPM remote service is run on-demand only Stop Monitoring server
systemctl stop abiquo-delorean systemctl stop abiquo-emmett systemctl stop kairosdb systemctl stop cassandra
On the Monitoring server, check if Cassandra is really dead
ps auwx | grep cassandra
Get the process number for Cassandra (the first number in the output of the previous command), and kill it. In this example, Cassandra is process 12345.
kill -9 12345
4. Back up the main platform elements
Back up the Abiquo MySQL DBs with the date in timestamp format.
mysqldump --routines --triggers kinton > kinton.sql-$(date +%Y%m%d_%H%M%S) mysqldump --routines --triggers kinton_accounting > kinton_accounting.sql-$(date +%Y%m%d_%H%M%S)
Dump the redis datastore and back it up.
redis-cli save cp -a /var/lib/redis /var/lib/redis-$(date +%Y%m%d_%H%M%S)
Back up /opt/abiquo folder on all Abiquo platform servers.
tar cvfz /opt/abiquo.tgz-$(date +%Y%m%d_%H%M%S) /opt/abiquo
Back up the UI
tar cvfz /var/www/html/ui.tgz-$(date +%Y%m%d_%H%M%S) /var/www/html/ui
If you are using SAML authentication with multiple IdPs, back up this file from every API server:
cp /opt/abiquo/tomcat/webapps/api/WEB-INF/classes/springresources/security/saml/security-saml-generated-beans.xml /opt/abiquo/tomcat/webapps/api/WEB-INF/classes/springresources/security/saml/security-saml-generated-beans.xml-$(date +%Y%m%d_%H%M%S)