Cloud Data Manager

Upgrading the Model9 management server

  1. Ensure that there are no policies scheduled to run during the upgrade operation.

  2. The supported upgrade path is from release 1.8.x to 2.0.0. If the installed release is older than that, please refer to previous installation guides or to Model9 support for upgrade instructions.

Step 1: Upload the zip files

Upload the zip installation file to the designated server in binary mode.


If installing the s390x version for Linux on z, use the file:

Step 2: Backup the server before the upgrade

  1. Set the default MODEL9_HOME environment variable using the following command:

    sudo su -
    export MODEL9_HOME=<model9 home>

    Stop the server and remove the Model9 docker containers that are running using the following commands - Make sure to replace the "x" with the current fixpack version.:

    docker stop model9-v1.8.x
    docker rm model9-v1.8.x
  2. Verify that the docker container is not running using the following command:

    docker ps -a
  3. Backup the local configuration and database:

    cd $MODEL9_HOME
    fileStamp=$(date +%Y-%m-%d)
    tar -czf conf-$fileStamp.tar.gz conf
    docker exec -it model9db pg_dump -p 5432 -U postgres -d model9 --compress=9 -f /tmp/model9db-$fileStamp.dump.gz
    docker cp model9db:/tmp/model9db-$fileStamp.dump.gz $MODEL9_HOME/model9db-$fileStamp.dump.gz
    docker exec -ti model9db rm /tmp/model9db-$fileStamp.dump.gz

Step 3: Unzip the installation files

The configuration file structure has been changed in this release and should be backed up before upgrading the server, as shown in the following example. Unzip the installation file to $MODEL9_HOME:

# The path to model9 installation zip uploaded
export M9INSTALL=/<path>
# Backup current configuration files
cp conf/model9-local.yml conf/model9-local.yml.backup
cp conf/logback.groovy conf/logback.groovy.backup
# On Linux issue:
unzip -o $M9INSTALL/ 'model9*' 'conf/logback.grovy'
# On Linux on z issue:
unzip -o $M9INSTALL/ 'model9*' 'conf/logback.grovy'

Step 4: Deploy the Model9 container

Deploy the new Model9 release container using the following command:

# On Linux issue:
docker load -i $MODEL9_HOME/model9-v2.0.0_build_f3aba202.docker

# On Linux on z issue:
docker load -i $MODEL9_HOME/model9-v2.0.0_build_f3aba202-s390x.docker

Step 5: Update the Model9 management server log configuration file

Reapply the changes done to the previous version's logback.groovy log configuration file to the new version's configuration file:

Open the backed up ($MODEL9_HOME/conf/logback.groovy.backup) in a text editor and copy missing logger definitions into the new version's $MODEL9_HOME/conf/logback.groovy. These custom logger definitions would typically appear at the end of the file.

Step 6: Start the Model9 management server


The first Model9 management server startup following an upgrade may take longer than usual due to internal migration processes. Subsequent startups will not be affected.

The previous release agent(s) are not compatible with the new release of the server, complete the agent(s) upgrade before starting to use the UI.

Once the object storage provider is available and PostgreSQL is running, start the Model9 management server using the following commands:

# On Linux issue:
docker run -d -p -p \
-v $MODEL9_HOME:/model9:z -h $(hostname) --restart unless-stopped \
-e "TZ=America/New_York" -e "CATALINA_OPTS=-Xmx2048m -Djdk.nativeCBC=false" \
--link minio:minio --link model9db:model9db \
--name model9-v2.0.0 model9:v2.0.0.f3aba202

# On Linux on z issue:
docker run -d -p -p \
-v $MODEL9_HOME:/model9:z -h $(hostname) --restart unless-stopped \
-e "TZ=America/New_York" \
-e "CATALINA_OPTS=-Xmx2048m -Djdk.nativeCBC=false -Xjit:maxOnsiteCacheSlotForInstanceOf=0" \
--link minio:minio --link model9db:model9db \
--name model9-v2.0.0 model9:v2.0.0.f3aba202
  1. If running backup and archive policies containing over 100k objects per night, update the Model9 server heap size to Xmx4096.

  2. Edit the time zone (TZ) setting to ensure proper scheduling.

  3. When using an external object storage provider other than MinIO, remove the “--link minio:minio” definition from the command

  4. For a full description of all Docker run parameters, see the following URL: