Code Monkey home page Code Monkey logo

Comments (3)

jschmid1 avatar jschmid1 commented on May 24, 2024

covers everything we discussed. lgtm

from deepsea.

swiftgist avatar swiftgist commented on May 24, 2024

After talking with Jan, I can see dropping the model options and having the capacity be more versatile. Also, targetting individual minions might be desirable. The plain command would work the same

salt-run populate.proposals --ratio 12:1

One addition would allow the targetting of minions. I think following the salt convention would seem simplest for the user

salt 'data[3-5]*' populate.proposals --ratio 12:1

The main advantage there is to create less noise by not attempting to fill a hardware profile with storage nodes that aren't wanted. That is data[12]*.yml would not be created.

I don't know if the name should stay in either case. I don't know that the alliteration helps anyone remember it. Supporting both syntaxes though requires some rework. Much of the logic would need to move from runner to module and that's probably a good thing.

The second change would be shorter and less options. For instance,

salt-run populate.proposals --ratio 6:1 --data 1862 --journal 185
salt-run populate.proposals --ratio 6:1 --data 1600:2000 --journal 180:190

The first command says "find data drives that are exactly 1862GB, journal drives that are exactly 185GB and create a proposal with a ratio of 6:1". The second form specifies the range instead. Any drive from 1600GB to 2TB would be included. Either form is effectively whitelisting which drives to include in a data+journal relationship.

One final requirement is the different preferences of what to do with the excluded drives. One strategy is to include them as independent OSDs. The main intent here is make use of all hardware and expect that the different OSDs would be separated via CRUSH map. The main issue here is the default CRUSH map will put all OSDs together. The other strategy is to simply exclude all excluded drives. The default CRUSH map will work fine, but some drives will remain unallocated. This may be useful in a POC environment but leaving purchased drives unallocated in a production environment would not fly.

The solution is to do both. Create both custom profiles one that includes all drives and the other that only contains the matched drives. The result would look like

profile-6:1-1Intel185GB-12DELL1862GB-1
profile-6:1-1Intel185GB-12DELL1862GB-2

from deepsea.

jan--f avatar jan--f commented on May 24, 2024

Was implemented in #464

from deepsea.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.