diff --git a/pkg/scheduler/algorithm/predicates/disk_schedtag_predicate.go b/pkg/scheduler/algorithm/predicates/disk_schedtag_predicate.go index fe91914fa6..4a12c78c32 100644 --- a/pkg/scheduler/algorithm/predicates/disk_schedtag_predicate.go +++ b/pkg/scheduler/algorithm/predicates/disk_schedtag_predicate.go @@ -148,17 +148,19 @@ func (p *DiskSchedtagPredicate) IsResourceFitInput(ctx context.Context, u *core. } } - // free capacity check - if storage.FreeCapacity < int64(d.SizeMb) { - return &FailReason{ - Reason: fmt.Sprintf("Storage %s free capacity %d < %d(request)", storage.Name, storage.FreeCapacity, d.SizeMb), - Type: StorageOwnership, + if u.GetHypervisorDriver().DoScheduleStorageFilter() { + // free capacity check + if storage.FreeCapacity < int64(d.SizeMb) { + return &FailReason{ + Reason: fmt.Sprintf("Storage %s free capacity %d < %d(request)", storage.Name, storage.FreeCapacity, d.SizeMb), + Type: StorageCapacity, + } } - } - if storage.ActualFreeCapacity < int64(d.SizeMb) { - return &FailReason{ - Reason: fmt.Sprintf("Storage %s actual free capacity %d < %d(request)", storage.Name, storage.ActualFreeCapacity, d.SizeMb), - Type: StorageOwnership, + if storage.ActualFreeCapacity < int64(d.SizeMb) { + return &FailReason{ + Reason: fmt.Sprintf("Storage %s actual free capacity %d < %d(request)", storage.Name, storage.ActualFreeCapacity, d.SizeMb), + Type: StorageCapacity, + } } } diff --git a/pkg/scheduler/algorithm/predicates/error.go b/pkg/scheduler/algorithm/predicates/error.go index 23abde6e91..1188cbc982 100644 --- a/pkg/scheduler/algorithm/predicates/error.go +++ b/pkg/scheduler/algorithm/predicates/error.go @@ -129,4 +129,5 @@ const ( StorageType = "storage_type" StorageOwnership = "storage_ownership" StorageMedium = "storage_medium" + StorageCapacity = "storage_capacity" )