Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents
minLevel1
maxLevel1
outlinefalse
styledisc
typelist
printabletrue
Info

Important

CentOS 7 becomes EOL in June 2024, as a result, it will be required to migrate from CentOS7 to another distribution. DataCore has decided to standardize the Rocky Linux distribution, starting with v8. Therefore, this guide is intended to describe the process of migrating all the components running on CentOS 7 to Rocky Linux 8 (RL8).

Info

Info

This process is intended for Swarm platforms where SCS is the platform server. It is not intended for systems using CSN or for systems not running CentOS 7. The process for the Elasticsearch and Gateway components can be used, but as it requires upgrading to the latest versions of each component first, this may not be achievable with older systems. Please contact DataCore support before running this process on any older clusters.

...

This process is only tested for systems whereadmin.userName=admin

If you use a different name, please contact DataCore Support for guidance.

Configuration

CentOS 7

Rocky 8

How to Find

Hostname

hostname

Frontend (External) IP

ip a

Backend (Swarm) IP

Either ip a
or scsctl platform config show -d logging.syslogHost

admin.userName

.

scsctl platform config show -d admin.userName

admin.password

scsctl platform config show -d admin.password

site_name

scsctl platform group list | awk 'sub("global.platform.","",$1) {print $1}'

group name (cluster name)

scsctl storage group list

dhcp_range

Either history | grep 'scsctl init dhcp'
or discovered from sed -n -e '/subnet /,/\\}/p' /etc/dhcp/dhcpd.conf | grep '^\s*range'

...

Code Block
mkdir /root/mig2rl8
scsctl backup create -o /root/mig2rl8/scs_backup_full.YYYYMMDD.tgz

Prepare the (new) RL8 SCS Server

Info

SERVER/VM Network Configuration

For the first NIC, connect this to the relevant VLAN for your Public/External//Management network.  For the second NIC this will ultimately need to be connected to the Swarm network – HOWEVER not yet.  For the first part of the process (ie SCS initialization) we need to set the

...

final IP (which will be the same as the current Swarm IP) and the NIC link must be seen as “UP”.  Therefore, to allow the process to complete without error, we recommend connecting the second NIC to a “Dummy” or Null VLAN (a network where this IP can exist temporarily) at this time. Connect the second NIC on the SCS VM to the Swarm private network VLAN Connect the second NIC on the SCS VM to the Swarm private network VLAN 

  1. Install a minimal instance of Rocky Linux 8 or deploy the SCS RL8 OVA.

  2. Prepare the basic configuration:

    1. Set the hostname: hostnamectl set-hostname <HOSTNAME>

    2. Set the timezone, if required: timedatectl set-timezone <CONTINENT>/<CITY>

    3. Configure the frontend (external) IP, if not configured during installation:
      nmcli con mod <NIC_NAME> <SETTING> <SETTING_VALUE>

    4. Do NOT configure the backend (Swarm) network at this time. This will be reconfigured during the SCS initialization.

  3. Ensure that a second virtual disk of at least 100GB is installed and mounted to /var/log. This is automatically created and configured during the OVA deployment.

  4. Ensure the OS is patched to the latest releases (assuming internet or repo connectivity): dnf update.

...

Info

Important

  • The version of SCS installed on the RL8 server must match the major.minor version that is running on the old C7 SCS server, but be aware there is a specific variant for RL8 (-el8).

  1. Copy the configuration files and the SCS backup to this server.

    Code Block
    languagebash
    C7_SCS_FRONTEND_IP=<IP_of_existing_C7_SCS_server>
    rsync -av -R --ignore-missing-args \
       ${C7_SCS_FRONTEND_IP}:/etc/hosts       \
       ${C7_SCS_FRONTEND_IP}:/etc/chrony.conf \
       ${C7_SCS_FRONTEND_IP}:/root/mig2rl8    \
       ${C7_SCS_FRONTEND_IP}:/usr/local/bin/node_exporter \
       ${C7_SCS_FRONTEND_IP}:/usr/lib/systemd/system/node_exporter.service \
       /

...

  1. Initialize the SCS server containers and configurations with basic defaults.

    Code Block
    scsctl init wizard -a
    1. For Site_Name, use EXACTLY the same name as the old C7 SCS server, and as recorded at the beginning of this process.

    2. For Swarm Administrator Password, use EXACTLY the same password as the old C7 SCS server, and as recorded at the beginning of this process

    3. For the Swarm network IP, you can either specify the same Swarm IP as the existing C7 SCS server or specify a new IP.
      ** If using a new IP, this must still be in the same subnet and outside of the DHCP range, and you MUST make changes to the Swarm cluster detailed later in this guide.

    4. DO NOT perform the “scsctl repo components, add -f [storage bundle file name]” step, or the “scsctl diagnostics config scan_missing” step at this time. Proceed to restore the backup file.

  2. If admin.username is not “admin” then run the following command:

    Code Block
    scsctl network_boot config set -d "admin.userName=${EXISTING_ADMIN.USERNAME}" 
  3. Restore the SCS backup.

    Code Block
    scsctl backup restore /root/mig2rl8/scs_backup_full.YYYYMMDD.tgz
  4. Initialize the DHCP server using the same parameters as the old C7 SCS instance and as recorded at the beginning of this process.

    Code Block
    languagebash
    scsctl init dhcp --dhcp-reserve-lower ${EXISTING_DHCP_LOWER} --dhcp-reserve-uppper ${EXISTING_DHCP_UPPER}
  5. If required, re-enable SELinux (i.e. reverting step 3). This may take some time to complete.

    Re-enable SELinux, by editing the /etc/selinux/config file, removing the line SELINUX=disabled, and un-commenting out the line SELINUX=enforcing or SELINUX=permissive. Save the file, then reboot the server.

    Code Block
    languagebash
    vi /etc/selinux/config
    ...
    SELINUX=enforcing
    ...
    
    reboot
  6. If the system was deployed with a minimal installation, please install the Swarm support tools.

    Code Block
    cd /root
    curl -O https://support.cloud.datacore.com/tools/updateBundle.sh
    bash updateBundle.sh fresh
    rm updateBundle.sh

    If the system was deployed with the OVA, the support tools should already be installed, but please update with the command below:

    Code Block
    cd /root/dist && ./updateBundle.sh

...

  1. If you are re-using the same Swarm IP on the backend network, disconnect the backend (Swarm) interface at the VM level for the C7 SCS instance, and connect the second NIC on the RL8 SCS VM to the Swarm private network VLAN.

Note

At this time, any Swarm logging will be lost.

If, however, you are changing the Swarm IP on the backend network, it is necessary to redirect logging to the RL8 server.

Code Block
languagebash
/root/dist/swarmctl -d ${ANY_STORAGE_NODE_IP} -C log.host -V ${RL8_SWARM_IP} -p ${SWARM_ADMIN_USER}:${SWARM_PASSWORD}

At this time, Swarm logging should be directed to this server.

...

Repeat the above Elasticsearch procedure for all the nodes in the cluster.

Option B - Adding New RL8 Nodes to the Existing Cluster and Retiring Old C7 Nodes

...