Skip to content

<fix>[localstorage]: ZSTAC-84163 check capacity by target primary storage - #4689

Open
MatheMatrix wants to merge 1 commit into
5.5.38from
sync/xiangheng.zhao/fix/ZSTAC-84163-local-storage-capacity@@2
Open

<fix>[localstorage]: ZSTAC-84163 check capacity by target primary storage#4689
MatheMatrix wants to merge 1 commit into
5.5.38from
sync/xiangheng.zhao/fix/ZSTAC-84163-local-storage-capacity@@2

Conversation

@MatheMatrix

Copy link
Copy Markdown
Owner

Root Cause:
LocalStorageAllocatorFactory used HostAllocatorSpec.getDiskSize() to check every local storage host ref. The value was the total size of root and data disks, so disks assigned to non-local primary storage were also counted against local storage and could incorrectly filter out a valid host.

Solution:
Carry root and data disk capacity requirements as primary-storage UUID and size tuples. Local storage sums requirements assigned to the current local primary storage. If any requirement has no determined primary storage and the host cluster only attaches local storage, retain the conservative total-size check. Migration uses the same per-primary-storage calculation because its producer records the destination primary storage with the migration capacity.

Test:
Update CreateVmHostAllocateCase to cover insufficient all-local capacity, mixed local/NFS placement, and partially undetermined primary storage.

Verified with:
Not run as requested.

Resolves: ZSTAC-84163

Change-Id: I3f9895c605819a570a580cedfeaf1d80db300c80

sync from gitlab !10742

@coderabbitai

coderabbitai Bot commented Aug 18, 2026

Copy link
Copy Markdown

Important

Review skipped

This review includes 5 billable files. This on-demand review is free during your promotion.

Your included review limit has been reached. Run @coderabbitai review --use-credits to review the latest changes using usage credits.

  • Run review — free
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: b77e682c-c35a-40b7-9abe-a2e44578053a

📥 Commits

Reviewing files that changed from the base of the PR and between 3dcb52e and f01e018.

📒 Files selected for processing (5)
  • compute/src/main/java/org/zstack/compute/vm/VmAllocateHostFlow.java
  • header/src/main/java/org/zstack/header/allocator/AllocateHostMsg.java
  • header/src/main/java/org/zstack/header/allocator/HostAllocatorSpec.java
  • plugin/localstorage/src/main/java/org/zstack/storage/primary/local/LocalStorageAllocatorFactory.java
  • test/src/test/groovy/org/zstack/test/integration/storage/primary/local_nfs/allocator/host/CreateVmHostAllocateCase.groovy

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Warning

.coderabbit.yaml has a parsing error

The CodeRabbit configuration file in this repository has a parsing error and default settings were used instead. Please fix the error(s) in the configuration file. You can initialize chat with CodeRabbit to get help with the configuration file.

💥 Parsing errors (1)
Could not fetch remote config from http://open.zstack.ai:20001/code-reviews/zstack-cloud.yaml: TimeoutError: The operation was aborted due to timeout
⚙️ Configuration instructions
  • Please see the configuration documentation for more information.
  • You can also validate your configuration using the online YAML validator.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Comment @coderabbitai help to get the list of available commands.

@MatheMatrix
MatheMatrix force-pushed the sync/xiangheng.zhao/fix/ZSTAC-84163-local-storage-capacity@@2 branch from 48d6932 to ddad333 Compare August 19, 2026 08:12
…rage

Root Cause:
LocalStorageAllocatorFactory used HostAllocatorSpec.getDiskSize() to check every local storage host ref. The value was the total size of root and data disks, so disks assigned to non-local primary storage were also counted against local storage and could incorrectly filter out a valid host.

Solution:
Carry root and data disk capacity requirements as primary-storage UUID and size tuples. Local storage sums requirements assigned to the current local primary storage. When the host cluster only attaches local storage, add only the capacity of disks whose primary storage is undetermined, instead of counting disks already assigned to another primary storage. Migration uses the same per-primary-storage calculation because its producer records the destination primary storage with the migration capacity.

Test:
Update CreateVmHostAllocateCase to cover insufficient all-local capacity, mixed local/NFS placement, and partially undetermined primary storage.

Verified with:
Not run as requested.

Resolves: ZSTAC-84163

Change-Id: I3f9895c605819a570a580cedfeaf1d80db300c80
@MatheMatrix
MatheMatrix force-pushed the sync/xiangheng.zhao/fix/ZSTAC-84163-local-storage-capacity@@2 branch from ddad333 to f01e018 Compare August 19, 2026 08:20
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