OS Upgrade#

The procedure must be carried out on each Node, starting from the one on which the Directory Server Component is installed, and it will require to reboot the Node and therefore a downtime of the Carbonio infrastructure must be planned. Please read carefully the whole section before starting the upgrade.

Upgrade to Ubuntu 24.04 or RHEL 9

With the upgrade of the operating system to Ubuntu 24.04 or RHEL 9, some Carbonio services previously managed by zmcontrol are now handled directly by systemd. This transition requires manual re-enabling of certain services after the OS upgrade and affects Phase 3 below.

Refer to the Systemd Integration Overview for background information.

The procedure is divided into phases:

  1. upgrade PostgreSQL from 12 to 16 (you can skip it if you already upgraded)

  2. manual upgrade Carbonio to 25.6.0

  3. upgrade Ubuntu LTS to 22.04 (Jammy Jellifish) or 24.04 (Noble Numbat), or RHEL 8 to RHEL 9

    Warning

    This release, 25.06.0, does no longer support Ubuntu 20.04 LTS, which went EOL in May 2025, so you are strongly recommended to upgrade to Ubuntu 22.04 LTS or to Ubuntu 24.04 LTS.

  4. upgrade Carbonio's packages to match the correct repository

  5. complete the upgrade procedure

Phase 1#

If you have not yet upgraded to Postgres 16, do so before upgrading the operating system. Directions to upgrade PostgreSQL can be found in Section Upgrade to PostgreSQL 16.

Phase 2#

This phase is the same as a normal upgrade, so please refer to Section Manual From Previous Version.

Phase 3#

This phase requires to upgrade the operating system. The following scenarios are supported:

Important notes:

  1. Ubuntu 20.04 LTS in no longer supported: Carbonio will not work if upgraded to 25.6.0 on Ubuntu 20.04

  2. A direct upgrade from Ubuntu 20.04 LTS to 22.04 LTS in not supported: you must upgrade to 22.04 LTS first, then to 24.04

  3. If you upgrade to Ubuntu 22 and use the Carbonio Monitoring Component, please make sure to change the Grafana repository.

Before The OS Upgrade#

  1. On each Node of your Carbonio infrastructure:

    Switch to the zextras user (if not already):

    # su - zextras
    
  2. Run the following command:

    zextras$ zmcontrol status
    
  3. Take note of the services listed as Running. These will guide which services need to be re-enabled post-upgrade.

After The OS Upgrade#

Once the OS upgrade to Ubuntu 24.04 or Red Hat 9 is complete:

  1. Log in as root on each node.

  2. For services identified earlier, use the corresponding command below to enable and start it using systemd.

Table 2 Mapping Table – zmcontrol Services to systemd Targets#

Target Name

Services Included

zmcontrol Service

systemd Target Command

directory-server

systemctl enable –now carbonio-directory-server.target

mta

systemctl enable –now carbonio-mta.target

proxy

systemctl enable –now carbonio-proxy.target

mailbox

systemctl enable –now carbonio-appserver.target

Note

Only the services listed above require to be manually enabled after the OS upgrade.

The other services shown in the zmcontrol status output (e.g., service webapp, service-discover, memcached, stats, config service etc.) will start automatically. You do not need to manually enable them.

Example Scenario

In the following example, node03 runs both the mta and proxy services.

Before the OS Upgrade

zextras$ zmcontrol status

Host node03.example.com
   ...
   mta         Running
   ...
   proxy       Running

After the OS Upgrade

Run the following as the root user:

# systemctl enable --now carbonio-mta.target
# systemctl enable --now carbonio-proxy.target

Repeat the process for each Node and each relevant service.

Final Notes#

  • These actions are mandatory to ensure the Carbonio components start correctly on boot in the new OS.

  • The zmcontrol utility will still report service status, but it no longer manages service startup on Ubuntu 24.04 and Red Hat 9.

  • Verify the status of any service after enablement using:

    #  systemctl status <target>
    

Phase 4#

Once you successfully carried out the first three phases, you can proceed to update the Carbonio packages to match the distribution. This phase requires some manual command to be executed.

During the Ubuntu upgrade, the file /etc/apt/sources.list.d/zextras.list will be modified. You need to make sure that it contains only the correct repository, that is, the line defining the repository

  1. contains the word jammy (for Ubuntu 22.04) or noble

  2. is not commented, i.e., it does not start with a # sign

During the RHEL upgrade, the file /etc/yum.repos.d/zextras.repo will be modified. You need to make sure that it contains only the correct repository, that is, the line defining the repository is:

baseurl=https://repo.zextras.io/release/rhel9

Then update the package list, and the packages themselves with these commands

# apt update && apt dist-upgrade

# dnf upgrade –best –allowerasing

Phase 5#

After completing the installation you need to update also the ubuntu repositories with the new version.

  • Before changing anything, back up your current APT sources:

    zextras$ sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
    
  • Update sources.list entries from focal to jammy, Open with your text editor:

    zextras$ sudo nano /etc/apt/sources.list
    
  • Then replace all instances of:

    focal

    with

    jammy

  • If you have third-party PPAs, you may also want to check files under file:/etc/apt/sources.list.d/

Some of them may not yet support Jammy — they may need to be disabled temporarily or updated manually.

Finally, reboot the Node.

# reboot