-
Notifications
You must be signed in to change notification settings - Fork 846
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
Allow allocation of persistent volumes on non-root mesos disk resources #3765
Comments
Hi @timcharper, thanks for offering your help here, we'd be happy about your contribution. As for the current state, I am not sure why disks other than For
So, by simply adding a For the using a Any thoughts on this? |
I believe that you could, in theory, use resource roles to control which disks are available to be allocated by an application. However, that might complicate things as memory and ram would need to be allocated by the same resource role. ¯_(ツ)_/¯ I don't know of any other signals we can use. Perhaps resource roles could be specified or persistent storage only? |
We can't use resource roles for that – as soon as you statically reserve a resource by assigning it a role, you can no longer dynamically reserve it. I guess we could change the logic to match on statically reserved disks, but then we couldn't add reservation labels (to identify which task uses it). |
any update for implementing consumption of
then, on the next log line, you see the complete offer, including the non -
|
I've got a work-in-progress commit for this: https://github.com/timcharper/marathon/tree/multi-disk It compiles (except for the tests). It's not really pretty, just shoveling code around to get a sense for general direction at this point. I had to change the disk resource allocation strategy to pair each allocation with a persistent volume (so that the persistent volume could be created on the corresponding disk). Allocation strategy is myopic in that it won't try different combinations of allocations to try and make it succeed, but that can be improved once this is ironed out. As for resource tagging, I'm thinking of the following:
|
If you're watching this, please take a look at my PR ^^ |
@timcharper Did you see @meichstedt's comments on your PR? |
This has been merged and should be released in 1.4.0 |
Mesos supports multiple-disk resources of the following kinds of disk resources: "Root", "Path", and "Mount". In the present release candidate, it is impossible to allocate a persistent volume on a disk resource other than root. Marathon will see non-root disk resources offered, and completely ignore them.
I believe this could be resolved somewhat easily by:
kind
, to PersistentVolumeInfo (and updating serializers / json-schema)kind
were unspecified, then a root volume is used, although there is no reason to not consider path disk resources as well. (the biggest concern would be allocating an entire disk to a process that doesn't need / want an entire disk).Am I totally off in thinking this should be somewhat easy to do? I'm an experienced Scala programmer and am willing to take a stab at it, but want to discuss / solicit any guidance before starting. This feature would drastically simplify my mesos cluster deployment.
The text was updated successfully, but these errors were encountered: