Skip to content

CSTACKEX-262: Support for Compute + Volume migration and Volume migration - #112

Draft
sandeeplocharla wants to merge 5 commits into
mainfrom
feature/CSTACKEX-262
Draft

sandeeplocharla wants to merge 5 commits into
mainfrom
feature/CSTACKEX-262

Conversation

@sandeeplocharla

@sandeeplocharla sandeeplocharla commented Oct 5, 2026 •

Copy link
Copy Markdown
Collaborator

Description

This PR...

Types of changes

  • Breaking change (fix or feature that would cause existing functionality to change)
  • New feature (non-breaking change which adds functionality)
  • Bug fix (non-breaking change which fixes an issue)
  • Enhancement (improves an existing feature and functionality)
  • Cleanup (Code refactoring and cleanup, that may add test cases)
  • Build/CI
  • Test (unit or integration test code)

Feature/Enhancement Scale or Bug Severity

Feature/Enhancement Scale

  • Major
  • Minor

Bug Severity

  • BLOCKER
  • Critical
  • Major
  • Minor
  • Trivial
Use case Suite Tests Result
Live VM migration with volumes migration_live 22 Pass
Stopped VM storage migration migration_stopped 15 Pass
Volume migration (detached or stopped-attached) migration_volume 23 Pass
iSCSI pool lifecycle iscsi_pool_lifecycle 8 Pass
iSCSI pool with volumes iscsi_pool_volumes 7 Pass
iSCSI zone-scoped pool iscsi_zone_pool 4 Pass
iSCSI volume lifecycle iscsi_volume 5 Pass
iSCSI VM volume attach iscsi_instance 8 Pass
NFS3 pool lifecycle nfs3_pool_lifecycle 8 Pass
NFS3 pool with volumes nfs3_pool_volumes 7 Pass
NFS3 zone-scoped pool nfs3_zone_pool 4 Pass
NFS3 volume lifecycle nfs3_volume 5 Pass
NFS3 VM volume attach nfs3_instance 8 Pass

Live VM with volumes (migrateVirtualMachineWithVolume)

Test What it covers Status
test_01_nfs3_default_primary_to_cluster DefaultPrimary root and data volumes to NFS3 C1a Pass
test_02_nfs3_cluster_to_cluster NFS3 C1a to C1b Pass
test_03_nfs3_cluster_to_zone NFS3 C1b to zone-wide Z1 Pass
test_04_nfs3_zone_to_zone NFS3 Z1 to Z2 Pass
test_05_nfs3_zone_to_cluster NFS3 Z2 back to C1a Pass
test_06_iscsi_default_primary_to_cluster DefaultPrimary root and data volumes to iSCSI C1a Pass
test_07_iscsi_cluster_to_cluster iSCSI C1a to C1b Pass
test_08_iscsi_cluster_to_zone iSCSI C1b to Z1 Pass
test_09_iscsi_zone_to_zone iSCSI Z1 to Z2 Pass
test_10_iscsi_zone_to_cluster iSCSI Z2 back to C1a Pass
test_11_reject_nfs3_to_iscsi Live NFS3-to-iSCSI mapping is rejected Pass
test_12_reject_iscsi_to_nfs3 Live iSCSI-to-NFS3 mapping is rejected Pass
test_13_reject_live_volume_only migrateVolume with livemigrate on a running volume is rejected Pass
test_14_nfs3_cluster_to_cluster After host split, NFS3 C1a to C2 Pass
test_15_nfs3_cluster_to_zone NFS3 C1a to Z1 onto a C2 host Pass
test_16_nfs3_zone_to_cluster NFS3 Z1 to C2 Pass
test_17_nfs3_zone_to_zone NFS3 Z1 to Z2 onto a C2 host Pass
test_18_iscsi_cluster_to_cluster iSCSI C1a to C2 onto a C2 host Pass
test_19_iscsi_cluster_to_zone iSCSI C1a to Z1 onto a C2 host Pass
test_20_iscsi_zone_to_cluster iSCSI Z1 to C2 Pass
test_21_iscsi_zone_to_zone iSCSI Z1 to Z2 onto a C2 host Pass
test_22_reject_pool_not_reachable_from_destination_host Cluster-1 pool mapped to a cluster-2 host is rejected Pass

Stopped VM storage migration (migrateVirtualMachineWithVolume, no destination host)

Test What it covers Status
test_01_nfs3_default_primary_to_cluster DefaultPrimary to NFS3 C1a Pass
test_02_nfs3_cluster_to_cluster_same_cluster NFS3 between cluster pools in the same cluster Pass
test_03_nfs3_cluster_to_cluster_across_clusters NFS3 to a pool in the second cluster Pass
test_04_nfs3_cluster_to_zone NFS3 cluster pool to zone-wide Pass
test_05_nfs3_zone_to_zone NFS3 between two zone-wide pools Pass
test_06_nfs3_zone_to_cluster NFS3 zone-wide back to C1a Pass
test_07_iscsi_default_primary_to_cluster DefaultPrimary to iSCSI C1a Pass
test_08_iscsi_cluster_to_cluster_same_cluster iSCSI between cluster pools in the same cluster Pass
test_09_iscsi_cluster_to_cluster_across_clusters iSCSI to a pool in the second cluster Pass
test_10_iscsi_cluster_to_zone iSCSI cluster pool to zone-wide Pass
test_11_iscsi_zone_to_zone iSCSI between two zone-wide pools Pass
test_12_iscsi_zone_to_cluster iSCSI zone-wide back to C1a Pass
test_13_reject_nfs3_to_iscsi Stopped-VM NFS3-to-iSCSI is rejected Pass
test_14_reject_iscsi_to_nfs3 Stopped-VM iSCSI-to-NFS3 is rejected Pass
test_15_reject_running_vm Stopped-VM API form is rejected once the VM is running Pass

Volume migration (migrateVolume)

Test What it covers Status
test_01_nfs3_detached_default_primary_to_cluster Detached NFS3, DefaultPrimary to C1a Pass
test_02_nfs3_detached_cluster_to_cluster_same_cluster Detached NFS3, C1a to C1b Pass
test_03_nfs3_detached_cluster_to_cluster_across_clusters Detached NFS3, C1b to C2 Pass
test_04_nfs3_detached_cluster_to_zone Detached NFS3, C2 to Z1 Pass
test_05_nfs3_detached_zone_to_zone Detached NFS3, Z1 to Z2 Pass
test_06_nfs3_detached_zone_to_cluster Detached NFS3, Z2 back to C1a Pass
test_07_iscsi_detached_default_primary_to_cluster Detached iSCSI, DefaultPrimary to C1a Pass
test_08_iscsi_detached_cluster_to_cluster_same_cluster Detached iSCSI, C1a to C1b Pass
test_09_iscsi_detached_cluster_to_cluster_across_clusters Detached iSCSI, C1b to C2 Pass
test_10_iscsi_detached_cluster_to_zone Detached iSCSI, C2 to Z1 Pass
test_11_iscsi_detached_zone_to_zone Detached iSCSI, Z1 to Z2 Pass
test_12_iscsi_detached_zone_to_cluster Detached iSCSI, Z2 back to C1a Pass
test_13_nfs3_attached_stopped_vm_cluster_to_zone Stopped-attached NFS3 data, C1a to Z1; root stays Pass
test_14_iscsi_attached_stopped_vm_cluster_to_zone Stopped-attached iSCSI data, C1a to Z1; root stays Pass
test_15_nfs3_attached_stopped_vm_default_to_ontap Stopped-attached non-ONTAP data to ONTAP NFS3 Pass
test_16_iscsi_attached_stopped_vm_default_to_ontap Stopped-attached non-ONTAP data to ONTAP iSCSI Pass
test_17_reject_detached_nfs3_to_iscsi Detached NFS3-to-iSCSI is rejected Pass
test_18_reject_detached_iscsi_to_nfs3 Detached iSCSI-to-NFS3 is rejected Pass
test_19_reject_stopped_attached_nfs3_to_iscsi Stopped-attached NFS3-to-iSCSI is rejected Pass
test_20_reject_stopped_attached_iscsi_to_nfs3 Stopped-attached iSCSI-to-NFS3 is rejected Pass
test_21_reject_attached_running_vm_without_livemigrate Running-attached NFS3 without livemigrate is rejected Pass
test_22_reject_attached_running_vm_with_livemigrate Live volume-only migration is rejected Pass
test_23_reject_same_pool Migration to the volume's current pool is rejected Pass

import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreCapabilities;
import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreDriver;
import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreManager;
import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreProvider;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As discussed, we should have our own OntapDataMotionStratgey to handle ontap related copy use cases. All the changes here should be part of that class.

@sandeeplocharla
sandeeplocharla marked this pull request as draft October 5, 2026 14:23
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.

2 participants