Page tree
Skip to end of metadata
Go to start of metadata

This guide explains how to upgrade OnApp Cloud v5.0 to the v5.1 for the cloud with the mixed CloudBooted servers and Static servers configuration. Follow the procedure listed below in the correct order to upgrade your cloud. Please follow the complete procedure of the upgrade process. All packages (Control Panel, CloudBoot, Compute resources) must belong to the same major version to ensure the best performance of your cloud.


On this page:

Important Notes

  1. You must be running the latest patch of OnApp 5.0 version to upgrade to 5.1 version. If you are using an earlier version, please upgrade to 5.0. first.
  2. Check the Activity Log in your OnApp CP dashboard if there are no transactions running in your cloud. If so, wait until all transactions are complete.
  3. Make sure no Control Panel files are open for editing under the root user account.

  4. Be aware that from now on, OnApp Licensing has a standalone client.Use only 443 port to connect from Control Panel to licensing server.
  5. We strongly recommend that you test all your custom scripts before upgrading your production environment.

  6. Be aware that after OnApp upgrade you should manually attach backup servers to compute zones, otherwise you will not be able to use backup servers.
  7. Be aware that OnApp does not support UEFI on static compute resources. You should disable UEFI on your compute resources before installing OnApp.


  • Drives assigned for use by Integrated Storage are identified using a disk signature that is generated using SCSI page query mechanism to the device. Please note that disk signatures may change across different kernel versions following an upgrade and reboot. If this occurs, go to the compute resource edit page to re-identify and select the correct drives. Please contact support if you have any concerns regarding this operation.
  • If you are running an LTS OnApp version and are using WHMCS modules, it is not recommended to update your cloud. To ensure that all WHMCS modules are working correctly you need to be running an LTS OnApp version.

Default Bonding Mode changed to IEEE 802.3ad Dynamic link aggregation

The OnApp Integrated Storage uses IEEE 802.3ad dynamic link aggregation as default bonding mode for SAN Network. This requires your switch configured to work in LACP mode. This setting will be applied when making changes to the Cloudboot Compute Resource. Please edit each of your Cloudboot Compute Resource setting that are using bonding to the desired one and press Save.


Upgrade Control Panel Server

  • CP installer for Installation and Upgrade contains a new -D option enabling to avoid OnApp database dumping during the install/upgrade.
  • To increase the cloud performance we recommend setting RUBY_GC_MALLOC_LIMIT parameter in custom configurations to 16 millions. For more information on RUBY_GC_MALLOC_LIMIT parameter, refer to Ruby’s GC Configuration and Garbage Collection articles.

  • Installer output is redirected to ./onapp-cp-install.log

  • All installer critical errors are in /var/log/messages

  • You may wish to reboot your Control Panel server to take advantage of a new kernel if it is installed. It is not required immediately as a part of the upgrade process though.
  • Custom values must be set before the installer script runs.
  • If you face the problem with viewing the maps on VS/Smart/Application server creation wizard (Locations step), refer to the Add Google Map API Key document.

To upgrade your Control Panel server:

  1. If you are using a remote RabbiMQ server, make sure the onapp user on the Control Panel has SSH access to that remote server:

    su onapp
    ssh root@<ip addrees>
  2. Download and install the latest OnApp YUM repository file:

    # rpm -Uvh
  3. Upgrade OnApp Control Panel installer package:

    # yum update onapp-cp-install

  4. Update your server OS components (if required):

    # /onapp/onapp-cp-install/ -y
  5. (Optional) If you need some custom Control Panel configuration, set the values before the installer script runs.

     Edit the /onapp/onapp-cp.conf file to set Control Panel custom values

    Template server URL


    # IPs (separated with coma) list for the snmp to trap


    # OnApp Control Panel custom version


    # OnApp MySQL/MariaDB connection data (database.yml)


    # MySQL/MariaDB server configuration data (in case of local server)


    # Use MariaDB instead of MySQL as OnApp database server (Deprecated parameter. If you set any values for this parameter, they will not take effect)


    # Configure the database server relative amount of available RAM


    # The number of C data structures that can be allocated before triggering the garbage collector. It defaults to 8 million


    # sysctl.conf net.core.somaxconn value


    # The root of OnApp database dump directory (on the Control Panel box)


    # Remote server's (to store database dumps) IP, user, path, openssh connection options ans number of dumps to keep

    DB_DUMP_SERVER_SSH_OPT="-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o PasswordAuthentication=no"
    DB_DUMP_CRON='40 * * * *'

    # Enable monit - tool for managing and monitoring Unix systems


    # If enabled (the 1 value is set) - install (if local box) and configures RabbitMQ Server (messaging system) for the vCloud support. (Deprecated parameter. If you set any values for this parameter, they will not take effect)




    # Rotate transactions' log files created more than TRANS_LOGS_ROTATE_TIME day(s) ago




    # Maximum allowed for uploading file size in bytes, from 0 (meaning unlimited) to 2147483647 (2GB). Default is 1GB




    # Timeout before ping Redis Server to check if it is started. Default is 5 sec.



    # OnApp Control Panel SSL certificates (please do not change if you aren't familar with SSL certificates)
    # * The data below to generate self-signed PEM-encoded X.509 certificate

    SSL_CERT_COMMON_NAME=`hostname --fqdn 2>/dev/null`


    #   SSLCertificateFile, SSLCertificateKeyFile Apache directives' values
    #   ssl_certificate, ssl_certificate_key Nginx directives' values



    # * PEM-encoded CA Certificate (if custom one exists)
    #   SSLCACertificateFile, SSLCertificateChainFile Apache directives' values
    #   ssl_client_certificate Nginx directives' values



    #   SSLCipherSuite, SSLProtocol Apache directives' values
    #   ssl_ciphers, ssl_protocols Nginx directives' values





    # vi /onapp/onapp-cp.conf

    If the onapp-cp.conf file is not configured correctly, it will replace the SSL files with a self-signed even if a legitimate certificate is already installed.

  6. Run Control Panel installer:

    # /onapp/onapp-cp-install/
     The full list of Control Panel installer options:




    /onapp/onapp-cp-install/ -hUsage: /onapp/onapp-cp-install/ [-c CONFIG_FILE] [--mariadb | --percona | --percona-cluster] [-m MYSQL_HOST] [--mysql-port=MYSQL_PORT] [--mysql-sock[=MYSQL_SOCK] [-p MYSQL_PASSWD] [-d MYSQL_DB] [-u MYSQL_USER] [-U ADMIN_LOGIN] [-P ADMIN_PASSWD] [-F ADMIN_FIRSTNAME] [-L ADMIN_LASTNAME] [-E ADMIN_EMAIL] [-v ONAPP_VERSION] [-i SNMP_TRAP_IPS] [--redis-host=REDIS_HOST] [--redis-bind[=REDIS_BIND] [--redis-passwd[=REDIS_PASSWD] [--redis-port=REDIS_PORT] [--redis-sock[=REDIS_SOCK] [--rbthost RBT_HOST] [--vcdlogin VCD_LOGIN] [--vcdpasswd VCD_PASSWD] [--vcdvhost VCD_VHOST] [--rbtlogin RBT_LOGIN] [--rbtpasswd RBT_PASSWD] [-a] [-y] [-D] [-t] [--noservices] [--ha-install] [--rake=RAKE_TASKS] [-h]



     Database server options:Default database SQL server is MySQL Server. Please use one of the following option to install LOCALLY.
    --mariadbMariaDB Server
    --perconaPercona Server
    --percona-clusterPercona Cluster
    MYSQL_*Options are useful if MySQL is already installed and configured.
    -m MYSQL_HOSTMySQL host. Default is 'localhost'
    --mysql-port=MYSQL_PORTTCP port where MySQL Server serves connections. Default values is 3306 for the local installation
    --mysql-sock[=MYSQL_SOCK]Unix socket on which MySQL Server serves connections. Default values is /var/lib/mysql/mysql.sock. Used if local server only. The socket is unset if the option's argument isn't specified.
    -p MYSQL_PASSWDMySQL password. Random is generated if is not set or specified.
    -d MYSQL_DBOnApp MySQL database name. Default is 'onapp'
    -u MYSQL_USERMySQL user. Default is 'root'
    REDIS_*Options are useful if Redis Server is already installed and configured.

    IP address/FQDN where Redis Server runs.
    The Redis Server will be installed and configured on the current box if localhost/ or box's public IP address (listed in SNMP_TRAP_IPS) is specified.
    If local Redis, it will serve as well on the unix socket '/tmp/redis.sock'.
    Default value is
     --redis-bind[=REDIS_BIND]The IP address for Redis Server to serve connections (to listen). The option is not mandatory.
    --redis-port=REDIS_PORTRedis Server listen port.
    Defaults are:
    0 - if local server
    6379 - if remote server
    --redis-passwd[=REDIS_PASSWD]Redis Server password to authentificate.
    Random password is generated if the option's argument isn't specified.
    By default no password is used for local Redis.
    --redis-sock[=REDIS_SOCK]Path to the Redis Server's socket. Used if local server only.
    Default is /tmp/redis.sock. The socket is unset if the option's argument is not specified.
    ADMIN_*Options are used to configure OnApp Control Panel administrator data.
    Please note, that these options are for NEW INSTALL only and not for upgrade
     -P ADMIN_PASSWDCP administrator password
    -F ADMIN_FIRSTNAMECP administrator first name
    -L ADMIN_LASTNAMECP administrator last name
    -E ADMIN_EMAILCP administrator e-mail
      --rbthost   RBT_HOST  IP address/FQDN where RabbitMQ Server runs. The RabbitMQ will be installed and configured on the current box if localhost/ or box's public IP address (enlisted in SNMP_TRAP_IPS) Default values are
    VCD_*Options are usefull if vCloud/RabbitMQ are already installed and configured.
    --vcdlogin  VCD_LOGINRabbitMQ/vCloud user. Default value is 'rbtvcd'.
    --vcdpasswd VCD_PASSWDRabbitMQ/vCloud user password. The random password is generated if isn't specified.
    --vcdvhost  VCD_VHOSTRabbitMQ/vCloud vhost. Default value is '/'
    RBT_*  Options are used to configure RabbitMQ manager account. If local RabbitMQ server.
    --rbtlogin  RBT_LOGIN RabbitMQ manager login. The default value is 'rbtmgr'.
    --rbtpasswd RBT_PASSWDRabbitMQ manager password. The random password is generated if isn't specified.
    --ha-installProceed with Control Panel and High Availability components installation
    --rake RAKE_TASKSList of OnApp Control Panel rake tasks (separated with space) to run at the very end of install or upgrade.
    -v ONAPP_VERSIONInstall custom OnApp CP version

    IP addresses separated with coma for snmp to trap

    The '-i' option has higher priority than 'on_app.yml'/'onapp-cp.conf' files.
    In case of the Control Panel upgrade with the '-i' option the snmp address will be overwritten in the 'on_app.yml'/'onapp-cp.conf' files.

    During the Control Panel upgrade without the '-i' option the 'on_app.yml' file has higher priority than the 'onapp-cp.conf' file.
    In this case the snmp address will be taken from the 'on_app.yml' file and the 'onapp-cp.conf' file will be overwritten.


    -c CONFIG_FILECustom installer configuration file. Otherwise, preinstalled one is used.
    -yupdate OS packages (except of OnApp provided) on the box with 'yum update'.
    -aDo not be interactive. Process with automatic installation. Please note, this will continue OnApp Control Panel install/upgrade even if there is transaction currently running.
    -tAdd to the database and download Base Templates. For new installs only. If this option is not used, then only the following mandatory System Templates will be added by default during fresh install: OnApp CDN Appliance; Load Balancer Virtual Appliance; Application Server Appliance.

    Do not start OnApp services: monit, onapp and httpd
    Please note, crond and all OnApp's cron tasks remain running. They could be disabled by stopping crond service manually for your own risk.

    -Ddo not make database dump, and make sure it is disabled in the cron and not running at the moment
    -hprint this info

    You may wish to reboot your Control Panel server to take advantage of a new kernel if it is installed. It is not required immediately as a part of the upgrade process though.


    Perform the following steps if you plan to deploy Accelerator. Otherwise skip.


  7. If you plan to configure an Accelerator, run the following command:

    • For all compute resources:

      rake hypervisor:messaging:configure
    • For certain compute resources only:

      rake hypervisor:messaging:configure['']

      To perform the configuration for a number of compute resources, separate their IPs with a space.

    The command above runs on compute resources that are online. If some compute resources are offline, you should run the command again when they are online.

    The rabbitmq_host parameter in the on_app.yml file should contain the real IP address of the server with RabbitMQ installed. The rabbitmq_host parameter should not be set to 'localhost' or ''.

    The server with RabbitMQ installed should be available from the compute resources.



    For information on manual configuration for Accelerator, refer to RabbitMQ Configuration for Accelerator.


Upgrade Static Compute Resources

At first upgrade your static compute resources.

  1. Make sure your compute resource is visible and online in the Control Panel.

  2. This step applies to CentOS 5.x Xen compute resources only. Run the following command:

    # rm -f /etc/yum.repos.d/GITCO-*.repo
  3. Download and install the latest OnApp YUM repository file and install new packages:

    # rpm -Uvh

    Run one of the following commands depending on CentOS version:

    For CentOS 5.x compute resources:

    # yum install gdisk lsblk-wrapper

    For CentOS 6.x compute resources:

    # yum install gdisk util-linux-ng

Upgrade Static Backup Servers

After you upgraded static compute resources, proceed to static backup servers upgrade.

Download the OnApp repository:

bash#> rpm -Uvh
# yum install gdisk 

Upgrade CloudBoot Packages

Create a backup of the /tftpboot directory in case storage packages rollback will be needed.

To upgrade the OnApp Storage packages:

  1. Upgrade the repo:

    CP_host#> rpm -Uvh
  2. Upgrade the packages:

    CP_host#> yum update onapp-store-install
  3. Run the script:

    CP_host#> /onapp/onapp-store-install/

    Be aware that the disk-less nodes password is the root password for the CloudBoot compute resources. By default it is blank.

    When run in the interactive mode, enter the required information.

Upgrade CloudBoot Backup Servers


Make sure to update CloudBoot packages on your Control Panel server before proceeding to the upgrade of CloudBoot backup servers.


CloudBoot backup servers are CloudBooted KVM compute resources that can be be used as backup servers. The CloudBoot backup server upgrade procedure is almost the same as the CloudBoot compute resource upgrade. Follow the instructions provided in this section to upgrade CloudBoot backup servers in your cloud.

Once you have upgraded the CloudBoot dependencies, you have to reboot your Cloud Boot compute resource to update the Cloud Boot RPM. You do not need to perform any backup server upgrade operations using console.

To do so:

  1. Go to your Control Panel Settings menu.

  2. Click the Compute resources icon.

  3. Click the label of the CloudBoot compute resource the backup server is based on.

  4. On the compute resource details screen, click the Actions button, then click Reboot Compute resource.

  5. A new screen will open asking for confirmation before reboot:

    • Are you sure you want to reboot this compute resource? Confirm that you want the compute resource to reboot.

  6. When you're certain you want to proceed with the reboot, click the Reboot button.

  7. Repeat these steps for all CloudBoot backup servers in your cloud.

  8. Once all are rebooted, proceed to CloudBoot compute resources upgrade.

Upgrade CloudBoot Compute Resources

OnApp 5.1 Release only includes fixes for Cloudboot Compute Resource Images. It does not include any Integrated Storage fixes, so only Simple Reboot option is available. Therefore you can skip this upgrade if you do not require the fixes.

In case you have applied any custom configuration to your CloudBoot servers, it is recommended to recheck that this customization does not break new cloud boot image version. For this, reboot a compute resource and run Storage Health Check and Network Health Check. Make sure that Vdisks hosted on a compute resource are redundant and healthy before rebooting a CloudBoot compute resource.


Simple Reboot

Follow the below procedure to upgrade the CloudBoot compute resources with reboot:

1. Upgrade CloudBoot Packages.
2. When the CloudBoot packages upgrade is complete, stop all virtual servers which reside on the CloudBoot compute resources.

3. Reboot all CloudBoot compute resources.

Once the compute resources are booted, the upgrade is complete. Before starting all Virtual Servers please ensure that the diagnostics page does not report any issue. In case of any issue, please press repair button to resolve it, then continue with starting Virtual Servers.


Note that virtual servers cannot be stopped simultaneously, but must be stopped in sequence. This can result in considerable downtime if there are a large number of virtual servers.

Configuration for Accelerator

Perform the following steps for your Cloudboot compute resources if you plan to deploy Accelerator.

  1. Run the following command on the CP server:

    • For all compute resources:

      rake hypervisor:messaging:configure
    • For certain compute resources only:

      rake hypervisor:messaging:configure['']

      To perform the configuration for a number of compute resources, separate their IPs with a space.

  2. The command above should  be run after every reboot. However, you can avoid the necessity to run the command repeatedly after every reboot by coping the following information (using your parameters) from /home/mq/onapp/messaging/credentials.yml to the custom config:

     echo "---
    port: 5672      # RABBITMQ CONNECTION PORT(default: 5672)
    vhost: '/'
    user: accelerator-example # RABBITMQ USER NAME
    password: 'e{y31?s8l' #RABBITMQ ACCESS PASSWORD
    queue: 'hv-' # hv-[IP Address of Compute Resource]
      name: 'acceleration'
      type: 'direct'
      durable: True" > /home/mq/onapp/messaging/credentials.yml
    chown -R mq:mq /home/mq
    service onapp-messaging restart

    For information on manual configuration for Accelerator, refer to RabbitMQ Configuration for Accelerator.


Local Read Policy


Enabling Local Read on a compute zone ensures that the locally stored copy of the data will always be used for reads. This significantly reduces read latency and improves overall storage performance by reducing load on the SAN network. However, in order to use this policy every compute resource must have sufficient physical drives to be able to store the number of stripes specified in the data store. E.g. in a 2R4S data store there must be at least 4 physical disks on the compute resource to use local read.

Changes to Local Read Policy Enforcement


Originally, when this policy was introduced OnApp did not enforce the requirement for the minimum number of drives. Consequently, some users who set the policy having insufficient drives may see the following error message:


Fatal: OnApp::Actions::Fatal Storage API Call failed: {"result"=>"FAILURE", "error"=>"Local reads have been enabled on the zone - members required per host: 4, required hosts: 2, available hosts: 0"}

The solution is to either add additional drives to that compute resource and then add them to the data store or to disable read local.

Getting support for your upgrade

You can use the information in this document to perform your own upgrade to the 5.1 version of the OnApp Cloud. However, if you have a full OnApp Cloud license, you are entitled to free upgrade support from the OnApp Support team.

If you would prefer to have the Support team perform the upgrade for you, just raise a ticket in the normal way. Please be aware, however, that there may be a queue! For help with your upgrade, visit the OnApp community forum:

#trackbackRdf ($trackbackUtils.getContentIdentifier($page) $page.title $trackbackUtils.getPingUrl($page))
  • No labels