Skip to content

Commit

Permalink
feat(scheduler): Change the action for guests with backup and instanc…
Browse files Browse the repository at this point in the history
…eGroup

1. 对于主机组的打散功能,放在调度的最后单独处理。
2. 主备机的调度,通过在主机和备机之间设置一个粒度为1的主机组来实现。
3. 虚拟机的调度默认打散,在打散的基础上,选择容量大的宿主机。
3. 主备机中,主机和备机的默认打散流程分散开,互不影响。
  • Loading branch information
rainzm committed Jul 21, 2020
1 parent 3599904 commit 2a0c16c
Show file tree
Hide file tree
Showing 6 changed files with 328 additions and 335 deletions.
156 changes: 0 additions & 156 deletions pkg/scheduler/algorithm/predicates/instance_group_predicate.go

This file was deleted.

2 changes: 0 additions & 2 deletions pkg/scheduler/algorithmprovider/defaults.go
Original file line number Diff line number Diff line change
Expand Up @@ -45,8 +45,6 @@ func defaultPredicates() sets.String {
factory.RegisterFitPredicate("m-GuestDiskschedtagFilter", &predicates.DiskSchedtagPredicate{}),
factory.RegisterFitPredicate("n-ServerSkuFilter", &predicates.InstanceTypePredicate{}),
factory.RegisterFitPredicate("o-GuestNetschedtagFilter", &predicates.NetworkSchedtagPredicate{}),
factory.RegisterFitPredicate("p-GuestForcedDispersionFilter", &predicates.SForcedGroupPredicate{}),
factory.RegisterFitPredicate("p-GuestUnForcedDispersionFilter", &predicates.SUnForcedGroupPredicate{}),
factory.RegisterFitPredicate("z-QuotaFilter", &predicates.SQuotaPredicate{}),
)
}
Expand Down
4 changes: 3 additions & 1 deletion pkg/scheduler/cache/candidate/base.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,8 @@ import (
schedmodels "yunion.io/x/onecloud/pkg/scheduler/models"
)

var ErrInstanceGroupNotFound = errors.Error("InstanceGroupNotFound")

type BaseHostDesc struct {
*computemodels.SHost
Region *computemodels.SCloudregion `json:"region"`
Expand Down Expand Up @@ -128,7 +130,7 @@ func (b baseHostGetter) GetFreeGroupCount(groupId string) (int, error) {
// Must Be
scg, ok := b.h.InstanceGroups[groupId]
if !ok {
return 0, fmt.Errorf("No such Group id")
return 0, errors.Wrap(ErrInstanceGroupNotFound, groupId)
}
free := scg.Granularity - scg.ReferCount
if free < 1 {
Expand Down
8 changes: 0 additions & 8 deletions pkg/scheduler/core/generic_scheduler.go
Original file line number Diff line number Diff line change
Expand Up @@ -450,17 +450,12 @@ func SelectHosts(unit *Unit, priorityList HostPriorityList) ([]*SelectedCandidat
completed:
for len(priorityList) > 0 {
log.V(10).Debugf("PriorityList: %#v", priorityList)
currentPriority := unit.GetMaxSelectPriority()
priorityList0 := HostPriorityList{}
for _, it := range priorityList {
if count <= 0 {
break completed
}
hostID := it.Host
if !currentPriority.IsEmpty() && unit.GetSelectPriority(hostID).Less(currentPriority) {
priorityList0 = append(priorityList0, it)
continue
}
var (
selectedItem *SelectedCandidate
ok bool
Expand All @@ -479,9 +474,6 @@ completed:
priorityList0 = append(priorityList0, it)
}
}
if !currentPriority.IsEmpty() {
unit.UpdateSelectPriority()
}
// sort by score
priorityList = priorityList0
//sort.Sort(sort.Reverse(priorityList))
Expand Down

0 comments on commit 2a0c16c

Please sign in to comment.