Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

LVM-LocalPV should pick the node where enough space is available for immediate binding #104

Closed
pawanpraka1 opened this issue Jun 18, 2021 · 3 comments · Fixed by #178
Closed
Assignees
Milestone

Comments

@pawanpraka1
Copy link
Contributor

pawanpraka1 commented Jun 18, 2021

Currently for the immediate binding case we have two scheduling logic

  1. Volumeweighted, here we pick the node where less number of volumes are provisioned
  2. CapacityWeighted here we pick the node where size of all the provisioned volumes are less

These 2 are not sufficient as there is a possibility of getting a node where enough space is not availabe as none of above scheduling logic look for the free space available in the volumegroup.

Now that since we have lvmnode CR which has all the information about the volume group. We can use that to find the best node. We need to create a node map (

func getNodeMap(schd string, vgPattern *regexp.Regexp) (map[string]int64, error) {
) of free space in the volume group. We should make this as default option for scheduling.

The schedule currently picks the node which one less weighted(https://github.com/openebs/lib-csi/blob/develop/pkg/scheduler/scheduler.go#L81) in the map, we need to modify it to pick the highest weighted node as here we need to pick the node where free space is more.

@pawanpraka1 pawanpraka1 added this to the v0.7 milestone Jun 18, 2021
@flokli
Copy link
Contributor

flokli commented Oct 7, 2021

This is also a problem with heterogenous clusters, where some nodes don't (yet) have the VG created.

openebs-lvm-controller keeps trying to create the volume on a node where the volume group doesn't even exist, and keeps failing (and also doesn't seem to take taints into consideration, preventing a pod from getting scheduled there).

@pawanpraka1 pawanpraka1 self-assigned this Jan 18, 2022
@pawanpraka1
Copy link
Contributor Author

pawanpraka1 commented Mar 8, 2022

fixed via #178.

@abhilashshetty04
Copy link
Contributor

This is also a problem with heterogenous clusters, where some nodes don't (yet) have the VG created.

openebs-lvm-controller keeps trying to create the volume on a node where the volume group doesn't even exist, and keeps failing (and also doesn't seem to take taints into consideration, preventing a pod from getting scheduled there).

@flokli , We have created an enhancement ticket #312. It has some additional suggestions also. Please take a look.

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 a pull request may close this issue.

3 participants