Standard Database upgrade
Upgrade your Aerospike Database cluster to gain access to the latest features and bug fixes. A rolling upgrade, the standard cluster upgrade process, involves upgrading one server node at a time and results in no downtime for the cluster. See Special upgrades and downgrades for important upgrade information relevant to specific versions.
Mixed versions
Aerospike supports mixed-version clusters for rolling upgrades. However, we do not recommend long term use of clusters with nodes running different versions of the Aerospike database.
Download the server package
-
Manually download the server package from the Aerospike Downloads page.
-
Read the release notes for the version you are downloading.
-
You can automate server version downloads from the artifact repository. See the FAQ on downloads for details.
-
Base URL:
https://download.aerospike.com/artifacts/aerospike-server-VERSION/SERVER-VERSION/
Download the server package and transfer it to the node. The name of the server package varies by version.
Linux distributions that use Red Hat packages must use the appropriate Red Hat Enterprise Linux compatible version. See Install Aerospike on Linux.
Starting with Database 6.2.0, which introduced support for ARM64, the server packages use the following naming convention:
aerospike-server-EDITION_VERSION_tools-TOOLS-VERSION_DISTRO_ARCHITECTURE.tgzedition: community, enterprise, federal
version: 6.2.0.0
distro: debian10, debian11, debian12, ubuntu18.04, ubuntu20.04, ubuntu24.04,el7, el8, el9, amzn2023
architecture: x86_64, aarch64 based on uname -m
In Database versions earlier than 6.2.0, Aerospike was intended to run only on Linux distributions and the x86_64 architecture.
aerospike-server-EDITION-VERSION-DISTRO.tgzedition: community, enterprise, federal
version: 6.1.0.3
distro: debian10, debian11, ubuntu18.04, ubuntu20.04, ubuntu24.04, el7, el8
Stop the Aerospike service
It is good practice to quiesce a node prior to shutting it down or removing it from an Aerospike Enterprise cluster. See Quiesce a node for details.
Stop the Aerospike service as follows:
# On systemd Linux distributionssudo systemctl stop aerospike# On System V Linux distributionssudo /etc/init.d/aerospike stopIf your server contains any in-memory namespaces without persistence (storage-engine memory), you must wait for migrations to complete before continuing to the next node to prevent data loss. See Monitoring migrations for more information.
Extract the server and tools package
To extract the contents of the package, run the following:
tar -xvf aerospike.tgzYou may need to delete the older release of Aerospike if you upgrade from a release prior to 3.3.y.z. To remove the packages, search for the old releases of aerospike-VERSION-server and aerospike-VERSION-tools.
For RPMs:
sudo rpm -qa | grep aerospikesudo rpm -e RPM_NAMEFor Debian packages:
sudo dpkg -l | grep aerospikesudo dpkg -r DPKG_NAMEInstall the new packages
Debian format
aerospike-server-EDITION_VERSION-1DISTRO_ARCHITECTURE.debaerospike-tools_VERSION-[commit]DISTRO_ARCHITECTURE.debedition: community, enterprise, federal
version: 6.2.0.0
distro: debian10, debian11, ubuntu18.04, ubuntu20.04
architecture: amd64, arm64 based on dpkg-architecture -qDEB_HOST_ARCH
sudo dpkg -i aerospike-server-enterprise_6.2.0.0-1ubuntu20.04_arm64.debsudo dpkg -i aerospike-tools_8.1.0-ubuntu20.04_arm64.debRPM format
aerospike-server-VERSION-1.RHEL.ARCHITECTURE.rpmaerospike-tools-VERSION-1.RHEL.ARCHITECTURE.rpmedition: community, enterprise, federal
version: 6.2.0.0
RHEL: el7, el8
architecture: x86_64, aarch64
sudo rpm -Uvh aerospike-server-enterprise-6.2.0.0-1.el7.aarch64.rpmsudo rpm -Uvh aerospike-tools-7.4.0-1.el7.aarch64.rpmDebian format
aerospike-server-VERSION.DISTRO.x86_64.debaerospike-tools-VERSION.DISTRO.x86_64.debedition: community, enterprise, federal
version: 6.0.0.7, 6.1.0.3
distro: debian10, debian11, ubuntu18.04, ubuntu20.04
For example
sudo dpkg -i aerospike-server-enterprise-6.0.0.7.ubuntu18.04.x86_64.debsudo dpkg -i aerospike-tools-7.3.1.ubuntu18.04.x86_64.debRPM format
aerospike-server-VERSION-1.RHEL.x86_64.rpmaerospike-tools-VERSION-1.RHEL.x86_64.rpmedition: community, enterprise, federal
version: 6.1.0.3
RHEL: el7, el8
sudo rpm -Uvh aerospike-server-enterprise-6.1.0.3-1.el8.x86_64.rpmsudo rpm -Uvh aerospike-tools-7.3.1-1.el8.x86_64.rpmStart the Aerospike service
Restart the server, and wait until the server confirms that the node is ready.
# On systemd Linux distributionssudo systemctl start aerospike# On System V Linux distributionssudo /etc/init.d/aerospike startStopping and starting the Aerospike service makes the node leave the cluster for a short time, which triggers data rebalancing (migrations). The migrate-fill-delay parameter controls these migrations. See the Delay Migrations page for further details.
Monitor the cluster state
Prior to upgrading another node, verify that the node has re-joined the cluster by checking the following items:
- The cluster key is uniform across the cluster, see
cluster_key. - The cluster is the expected size, see
cluster_size.
This can be checked through asadm, asinfo or by tailing the logs.
Some scenarios may require that you wait for migrations to complete prior to moving on and stopping the next node. These scenarios include the following:
- in-memory namespaces without persistence (
storage-engine memory) - specific version upgrades that require persisted data to be deleted (for example, version 4.2.0)
- some use cases for clusters running the older cluster protocol (prior to version 3.13)
As of version 4.3.0, the cluster-stable info command can be used to easily determine whether a cluster is stable.
For versions not supporting the cluster-stable info command, the following conditions would guarantee that migrations have finished following a reclustering event across all nodes in a cluster:
migrate_allowedistruemigrate_partitions_remainingis0
To programmatically check whether the cluster is stable and migrations have finished, the following should be observed:
- Wait until
cluster_keyis uniform, thecluster_sizeis of expected size andmigrate_allowedis set totrue - Wait for
migrate_partitions_remainingto be0 - Check the
cluster_keyis still the same as it was in step 1 and that thecluster_sizedid not change. If these are different, loop over to step 1 and check again.
After completing the upgrade across all nodes in the cluster, run asadm -e "info network" to verify that all the nodes have successfully upgraded to the correct version and that the cluster size is correct. You can look at asadm -e "info node" to check other statistics.
Admin> info network~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Network Information (2020-12-16 21:45:32 UTC)~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Node| Node ID| IP| Build|Migrations|~~~~~~~~~~~~~~~~~~Cluster~~~~~~~~~~~~~~~~~~|Client| Uptime | | | | |Size| Key|Integrity| Principal| Conns|10.0.0.1:3000| BB9010016AE4202| 10.0.0.1:3000|C-5.3.0.1| 0.000 | 5|92DCF600367B|True |BB9050016AE4202| 2|00:07:4810.0.0.2:3000| BB9020016AE4202| 10.0.0.2:3000|C-5.3.0.1| 0.000 | 5|92DCF600367B|True |BB9050016AE4202| 2|00:07:4710.0.0.3:3000|*BB9030016AE4202| 10.0.0.3:3000|C-5.3.0.1| 0.000 | 5|92DCF600367B|True |BB9050016AE4202| 2|00:07:46Number of rows: 5service ready: soon there will be cake! is logged after a node is available. You can tail the logs and grep for “cake” to check for this line:
# On systemd Linux distributionsjournalctl -u aerospike -a -o cat -f | grep "cake"# On System V Linux distributionssudo tail -f /var/log/aerospike/aerospike.log | grep "cake"