Skip to content

Conversation

@rp-
Copy link
Contributor

@rp- rp- commented Jan 27, 2026

Description

This PR allows live migration from any primary storage to Linstor primary storage.

Fixes: #8032
Fixes: #11826

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

Screenshots (if appropriate):

How Has This Been Tested?

Live migration from NFS primary storage and also from another Linstor primary storage.

How did you try to break this feature and the system with this change?

Running Linstor integration tests

@codecov
Copy link

codecov bot commented Jan 27, 2026

Codecov Report

❌ Patch coverage is 3.65535% with 369 lines in your changes missing coverage. Please review.
✅ Project coverage is 16.24%. Comparing base (c0b5358) to head (984e3f7).

Files with missing lines Patch % Lines
...tack/storage/motion/LinstorDataMotionStrategy.java 0.00% 208 Missing ⚠️
...cloudstack/storage/datastore/util/LinstorUtil.java 8.97% 141 Missing and 1 partial ⚠️
...tore/driver/LinstorPrimaryDataStoreDriverImpl.java 0.00% 19 Missing ⚠️
Additional details and impacted files
@@             Coverage Diff              @@
##               4.20   #12532      +/-   ##
============================================
- Coverage     16.24%   16.24%   -0.01%     
- Complexity    13396    13400       +4     
============================================
  Files          5658     5659       +1     
  Lines        499273   499488     +215     
  Branches      60600    60621      +21     
============================================
  Hits          81125    81125              
- Misses       409104   409319     +215     
  Partials       9044     9044              
Flag Coverage Δ
uitests 4.03% <ø> (ø)
unittests 17.09% <3.65%> (-0.01%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

rp- added 2 commits January 27, 2026 18:43
Move reusable methods from LinstorPrimaryDataStoreDriverImpl to LinstorUtil
to enable sharing with other components:
- logLinstorAnswer, logLinstorAnswers, checkLinstorAnswersThrow
- getRscGrp, getEncryptedLayerList, applyQoSSettings
- createResourceBase, createResource, spawnResource
- canShareTemplateForResourceGroup, foundShareableTemplate

Add LIN_PROP_DRBDOPT_EXACT_SIZE constant and exactSize parameter support
for DRBD exact-size property handling during resource creation.
Implement DataMotionStrategy for live migration of VMs with volumes on
Linstor or other primary storage.

Key features:
- Support live migration with storage from other primary storages
- Preserve DRBD exact-size property during migration
@rp- rp- force-pushed the linstor-4.20-data-motion-linstor-2-linstor branch from 93af47f to 984e3f7 Compare January 27, 2026 17:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant