On the nodes running provisioner and attacher pods

As the next step, you must upgrade IBM Spectrum Scale on the nodes where provisioner and attacher pods are running.

  1. Move or stop all pods that use volumes that are managed by the IBM Spectrum Scale Container Storage Interface driver.
  2. Drain the nodes so that StatefulSets move to other nodes.
    kubectl drain <nodename> --ignore-daemonsets —delete-local-data
  3. Remove the PluginSelector label that is assigned to the infrastructure node.
    kubectl label node <nodename> scale-
  4. Prepare the node to shut down IBM Spectrum Scale.
    1. Check for open files.
      lsof <filesystem>
    2. Check for mounted kernel modules.
      lsmod | grep mm
    3. If there is any mm* present, then unmount and shut down file systems on the node.
      • Ensure that GPFS is active on the node.
        mmgetstate
      • To list the mounted file systems across all nodes.
        mmlsmount all
      • To list disk space usage and more importantly to see what file systems are mounted.
        df
    4. Unmount all file systems for the current node.
      mmunmount all
    5. Shut down GPFS on the current node.
      mmshutdown
    6. Check for open files.
      lsof <filesystem>
    7. Check for mounted kernel modules.
      lsmod | grep mm
      Note:
      • If all file systems are unmounted and GPFS is shut down, continue to step 5 to proceed with IBM Spectrum Scale upgrade.
      • If there are any file systems or mounted kernel modules (mm*) present, then do a reboot of the worker node to clean up the state. Ensure that autoload is set to off for the node before rebooting.
    8. Disable autoload by issuing the following command:
      mmchconfig autoload=no -N <node>
    9. Reboot the worker node.
      reboot
  5. Upgrade the IBM Spectrum Scale using the IBM Spectrum® Scale installation toolkit, set the worker node as an offline node, and exclude other nodes.
  6. After the upgrade is completed, do the following steps:
    1. Log on to the worker node and issue the following command to enable autoload:
      mmchconfig autoload=yes -N <node>
    2. Log on to the worker node and start GPFS.
      mmstartup
    3. Uncordon the node.
      kubectl uncordon <node>
    4. Relabel the node with IBM Spectrum Scale Container Storage Interface driver.
      kubectl label node <node> scale=true