Update the operating system
TODO: Netwrix doesn't pin a Docker version, and test labs upgrade without problems on Docker 29.x. Decide as a policy call (product management or Support) whether to keep the hold on the docker-ce, docker-ce-cli, and containerd.io packages in this procedure.
This page applies to the deprecated ISO appliance. For the supported deployment method, see Legacy ISO installation.
Install operating system updates during a scheduled maintenance window, because an update can require a reboot of the server or the Docker service. The downtime depends on the deployment:
- Three-node cluster: No data loss. The API and background services restart briefly when a node reboots. Update one node at a time.
- Single node: Downtime during the reboot, usually 30 to 60 minutes.
Prerequisites
- A scheduled maintenance window. For a single node, plan for 30 to 60 minutes of downtime.
- The
s1command-line helper, installed on the nodes. - Shell access with
sudorights to each node.
Update a three-node cluster
Update one node at a time.
-
On any node, open a database shell:
sudo s1 db -
Check the replication status. Each member must show
PRIMARYorSECONDARYinstateStr, and the replication lag must be a few seconds at most:rs.status().members.forEach(function (m) { print(m.name, m.stateStr) })Then check the replication lag. On MongoDB 4.0, run:
rs.printSlaveReplicationInfo()On MongoDB 8.0, run:
rs.printSecondaryReplicationInfo()If replication isn't healthy, resolve the problem before you continue.
-
Exit the database shell:
exit -
On the primary node, check the status of the services and nodes:
s1 status; s1 nodes -
Connect by SSH to the node that you update.
-
Check that the Docker packages have a hold:
sudo apt-mark showhold -
If the command doesn't list
docker-ce,docker-ce-cli, andcontainerd.io, add them to the hold list:sudo apt-mark hold docker-ce docker-ce-cli containerd.io -
Download the package information and list the available updates:
sudo apt update; sudo apt list --upgradable -
Install the updates:
sudo apt -y upgradeIf a prompt asks whether to replace a configuration file or setting, keep the existing configuration, setting, or file.
-
Check whether a reboot is required:
sudo cat /var/run/reboot-requiredIf a reboot is required, the command returns
*** System restart required ***. Otherwise, it returnscat: /var/run/reboot-required: No such file or directory. -
If a reboot is required, reboot the node:
sudo reboot -
From another node, wait until the rebooted node completes the restart:
watch s1 nodesWhen Availability shows
Activefor the updated node, press Ctrl+C to stop the command. -
Check the replication status again, as described in steps 1 through 3.
-
Check the status of the services and nodes:
s1 status; s1 nodes -
Repeat steps 5 through 14 for the next node.
-
After you update all nodes, check the status of the services and nodes one more time:
s1 status; s1 nodes
Update a single node
-
Check the status of the services and nodes:
s1 status; s1 nodes -
Check that the Docker packages have a hold:
sudo apt-mark showhold -
If the command doesn't list
docker-ce,docker-ce-cli, andcontainerd.io, add them to the hold list:sudo apt-mark hold docker-ce docker-ce-cli containerd.io -
Download the package information and list the available updates:
sudo apt update; sudo apt list --upgradable -
Install the updates:
sudo apt -y upgradeIf a prompt asks whether to replace a configuration file or setting, keep the existing configuration, setting, or file.
-
Check whether a reboot is required:
sudo cat /var/run/reboot-requiredIf a reboot is required, the command returns
*** System restart required ***. Otherwise, it returnscat: /var/run/reboot-required: No such file or directory. -
If a reboot is required, reboot the node:
sudo reboot -
After the reboot completes, sign in and check the status of the services and nodes:
s1 status; s1 nodes