Applicable scenario
- Product:
ZCF - Component:
ZCE-X - Versions:
4.2.x, 5.2.x - Current storage version:
4.2.x - Target storage version:
5.2.x - Intermediate version:
4.2.x.* - Operating system/architecture:
C76/X86 - Trigger: An online storage upgrade is required, or
4.2.xrocksdb exceptions cause a MON node to go down or dual-management database desynchronization that later self-recovers.
Symptoms
- A
4.2.xenvironment cannot be upgraded directly to5.2.x. - The
4.2.x.*intermediate version is required. - The upgrade restarts OSDs and related services one by one and can cause storage-performance fluctuations.
- Confirmed
4.2.xrocksdb exceptions can cause a MON node to go down or dual-management database desynchronization that later self-recovers.
Determination method
- Before upgrade, check node resources, storage-pool health, and ceph/etcd/ES state.
- After each upgrade, restart
xdcone server at a time and observe cluster recovery. - Confirm automatic rebalancing is switched correctly before and after upgrade.
Cause
The valid upgrade path is 4.2.x -> 4.2.x.* -> 5.2.x. V4-to-V5 upgrading involves a temporary license, thin-provisioning adjustments, and a formal license request, so cross-version direct upgrade is not supported. For confirmed rocksdb exceptions, upgrade to 5.2.x avoids MON-down and database-desynchronization issues.
Resolution
- Preparation
- Risk level: high.
- Obtain a temporary
v4-compatiblev5license, then request a formal license after upgrading to5.2.x. - Disable global VM HA.
- For overnight upgrades, disable automatic rebalancing first.
- Shut down service VMs during the maintenance window and put primary storage into maintenance mode.
- Pre-upgrade health checks
- Check all nodes:
- CPU and memory below
80% - System-volume usage below
70% - At least
50GB+free on/optand/tmp - At least
30GB+free on root - Passwordless
sshfrom management nodes to compute nodes - Expected result: All basic resources meet upgrade conditions.
- Check that storage pools are healthy.
- Expected result: Restore health before upgrading if unhealthy.
- Check the
ceph/etcd/ESclusters:
storage healthisHEALTH_OKetcd clusterishealthyESisgreen- Expected result: All core clusters are healthy.
- Check service state:
xms-cli --user admin --password <account_password> service list
- Expected result: All services show
active.
- Check directory permissions,
iattributes,umask, and MON consistency.
- Remove
iattributes if present. - Change
umaskto0022if it differs. - Confirm
hostname,ceph.conf, andceph mon dumpare consistent. - Expected result: Upgrade-script interruption is avoided.
- For overnight upgrade, disable automatic rebalancing:
ceph tell mon.* injectargs "--mon_pg_auto_rebalance_enable=false"
xms-manage conf update ceph
- Expected result: Automatic rebalancing does not amplify load fluctuations during upgrade.
- Upgrade to 4.2.x
- Upload and extract the installation package on the primary database node.
- Run:
./upgrade.sh --skip-xdc-restart
- Expected result: The main version upgrade completes without automatically restarting
xdc.
- For confirmed rocksdb exceptions, run:
./upgrade.sh --skip-xdc-restart -nc
- Expected result: The main upgrade procedure for the rocksdb-exception scenario completes.
- Restart
xdcone server at a time.
- For each server, first confirm:
systemctl status xdcis normal- The cluster has recovered
- Then process the next server.
- Expected result: The intermediate-version switch completes safely.
- If the upgrade is interrupted, fix the issue and continue:
./upgrade.sh --continue
- Upgrade to 5.2.x
- Repeat the health checks.
- Upload and extract the
5.2.xinstallation package. - Run:
./upgrade.sh --skip-xdc-restart
- Expected result: The V5 main upgrade completes.
- Restart
xdcagain one server at a time. Ifcsi-iscsiorcinder-iscsiis used, restart nodes one by one and complete health checks on each before continuing. - If interrupted, continue with:
./upgrade.sh --continue
- Post-upgrade completion
- Repeat health checks after upgrade.
- Enable primary storage after storage pools are healthy and wait for reconnection.
- Re-enable automatic rebalancing:
ceph tell mon.* injectargs "--mon_pg_auto_rebalance_enable=true"
xms-manage conf update ceph
- Expected result: The parameter returns to
true.
- Set storage-pool thin-provisioning for V4-to-V5 upgrade:
xms-cli --user admin -p <account_password> pool list
xms-cli --user admin -p <account_password> pool set --thin-provisioned id
- Expected result: Storage-pool mode meets V5 requirements.
- Download the request code and contact sales for a formal license.
- Expected result: The temporary license is replaced by a formal license.
Verification
- The cluster recovers health at each version stage.
xdcis normal after restart on each server.- Automatic rebalancing switches off and on correctly.
- Storage pools and primary storage reconnect, and licensing and thin-provisioning are complete.
Risks and rollback
- Risk: Upgrade wait timeout is
120minutes; timeout interrupts and exits the process. - Risk: OSDs and related services restart one by one, causing I/O fluctuations.
- Risk: An unhealthy
cephcluster before upgrade significantly increases subsequent risk. - Risk level: high.
- Rollback: If an upgrade problem occurs, fix it and continue the upgrade rather than immediately rolling back the entire package.
