Upgrade Kernel Modules¶
In EKF 1.5.2, by upgrading Rok, you have also upgraded the kernel module that Rok uses to track the blocks that have been modified.
The former kernel module Rok used for changed block tracking had a bug and, under certain circumstances, didn’t properly commit its metadata when Rok snapshotted the device. This could have lead to the corruption of the CBT metadata, which could result in Rok snapshots failing.
Because the old version of the kernel module might be in use by existing devices, upgrading it requires rebooting all the nodes in your cluster.
Although snapshots that have completed successfully should not be affected, to eliminate any chances of corruption, you should also reset the CBT metadata of all Rok volumes.
This guide will walk you through rebooting all cluster nodes and resetting the CBT metadata of all Rok volumes, so that the new version of the kernel module can take effect.
This feature was introduced in EKF 1.5.2. You should only run this guide if you are upgrading from an EKF version older than 1.5.2 to version 1.5.2 or later. If you are upgrading EKF from version 1.5.2 or later, proceed to the What’s Next section.
Go to your
Reboot all cluster nodes. Choose one of the following options based on the service in which you have created your management environment:
Wait until Rok kmod has become ready. Verify field READY is 1/1 and field STATUS is Running for all Pods:root@rok-tools:~# watch kubectl get pods -n rok-system -l app=rok-kmod Every 2.0s: kubectl get pods -n rok-system -l app=rok-kmod rok-tools: Wed Jun 8 09:39:58 2022 NAME READY STATUS RESTARTS AGE rok-kmod-j9bpw 1/1 Running 0 1m rok-kmod-pqbxb 1/1 Running 0 1m
rok-reset-cbtand follow the on-screen instructions to reset the CBT metadata of all Rok PVCs in all namespaces:root@rok-tools:~# rok-reset-cbt \ > --pvcs ALL \ > --namespace ALL \ > --storage-class rok
You have successfully upgraded the kernel modules used by Rok and reset the CBT metadata of all Rok volumes.