Skip to content

docs(kubevirt): preserve TopoLVM VM data when reinstalling node OS (ACP-56362) - #854

Merged
Muyan0828 merged 2 commits into
mainfrom
acp-56362-kubevirt-os-reinstall-topolvm
Oct 14, 2026
Merged

Muyan0828 merged 2 commits into
mainfrom
acp-56362-kubevirt-os-reinstall-topolvm

Conversation

@Muyan0828

Copy link
Copy Markdown
Contributor

Adds a solution for moving workload cluster nodes to a new operating system (for example off CentOS 7) while keeping the disks of KubeVirt VMs that live on TopoLVM local storage. Tracked in ACP-56362.

Approach

  • Primary path: reinstall the system disk only and add the node back under the same hostname/IP. The LVM metadata lives on the data disks, so the PVC/PV/LogicalVolume objects keep pointing at the original LVs and the VMs start on their original PVCs.
  • Safety net: clone each VM disk to Ceph RBD with a CDI DataVolume before the reinstall.
  • Fallback: if the data disks are lost, recover TopoLVM on the node and clone the disks back from Ceph.

Pitfalls covered (all hit during validation)

  • Data disk device names can swap after a reinstall (vdb ↔ vdc); the guide checks disks by content and fixes TopolvmCluster/CephCluster before the node rejoins, because the 4.1 TopoLVM operator can vgremove a VG whose PVs no longer match its config.
  • The recreated Node object loses its taint state and the virtualization switch; a new control-plane:NoSchedule taint keeps virt-handler off the node.
  • Removing a control plane node takes it out of the OVN database cluster, but adding it back does not; the guide covers restoring ovn-central membership and OVN_DB_IPS.
  • A wiped data disk leaves a stale status.json in lvmdconfig-<node> that stops TopoLVM from recreating the VG.

Validation: run end to end on an ACP 4.1.7 cluster (TopoLVM 4.1.5, Rook-Ceph 4.1.5, KubeVirt 1.5.2 / CDI 1.62.0, Kube-OVN), moving nodes from CentOS 7.9 to RHEL 9.6. Test VMs covered both Block and Filesystem volume modes:

  • primary path: after reinstalling the system disk, sha256 of all 4 disks matched the pre-reinstall baseline and the VMs booted on their original PVCs unchanged;
  • fallback path: with the data disks wiped, TopoLVM was recovered, the disks were cloned back from Ceph (checksums matched), and the VMs booted.

Changing OVN_DB_IPS of the ovs-ovn DaemonSet is noted in the guide as not tested.

The id: field is omitted on purpose so CI assigns the KB id on merge; zh is generated by the translation job.

🤖 Generated with Claude Code

…CP-56362)

Add a solution for moving workload cluster nodes to a new operating
system while keeping KubeVirt VM disks on TopoLVM: reinstall the system
disk only and rejoin the node under the same name, with a Ceph RBD
backup as the safety net and a clone-back fallback when data disks are
lost. Covers device-name changes after reinstall, node taint and
virtualization switch restore, and Kube-OVN control plane membership
for control plane nodes. Validated on ACP 4.1.7 (CentOS 7.9 -> RHEL 9.6).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…-56362)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@Muyan0828
Muyan0828 merged commit d5cc91c into main Oct 14, 2026
1 check passed
@Muyan0828
Muyan0828 deleted the acp-56362-kubevirt-os-reinstall-topolvm branch October 14, 2026 05:40

This branch was successfully deployed

1 active deployment
translate — 3716d4aa Deployed Oct 14, 2026 by Muyan0828 via build #2731
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant