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.
In a standard environment, the RabbitMQ service is on 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 onlyStop 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
To perform a basic backup of the platform, run the following backups:
Before you begin, stop platform services, and check you have enough space on your destination systems.
# On DB server, back up the Abiquo MySQL DBs 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) # On the Monitoring server, back up Watchtower DB mysqldump --routines --triggers watchtower > watchtower.sql-$(date +%Y%m%d_%H%M%S) # On the Abiquo API Server or UI server, 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, on ALL Abiquo API Servers, back up this file 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) # On ALL servers, back up the /opt/abiquo folder tar cvfz /opt/abiquo.tgz-$(date +%Y%m%d_%H%M%S) /opt/abiquo # On Abiquo Monolithic or API Server, Remote Services, or Datanode, back up Redis redis-cli save cp -a /var/lib/redis /var/lib/redis-$(date +%Y%m%d_%H%M%S)