Comments (3)
covers everything we discussed. lgtm
from deepsea.
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.
Was implemented in #464
from deepsea.
Related Issues (20)
- make install fails on archlinux HOT 1
- cephdisks.unused falsely returns mounted disks
- Typo - should be c_v_commands instead of d_v_commands
- Example code for return structures of modules HOT 6
- rebuild runner needs to read error messages from osd.py(runner) HOT 2
- osd.remove fails to zap devices on ceph version 14.2.3-349 HOT 10
- functests.3nodes fails with IndexError HOT 4
- How to deploy /dev/sdb ,/dev/sdc only use /dev/nvme0n1 as db device ? HOT 5
- Can not remove cluster node HOT 2
- [SES5] remove.osd functest fails HOT 9
- No role for rbd-client (e.g. mapping images) HOT 1
- Stage.3 Hang in Disks.Deploy HOT 6
- IGW lrbd support
- Device discovery not working in KVM environment HOT 3
- SES5: "time_init: ntp" does not work as expected HOT 1
- SES5: osd.redeploy fails for filestore -> bluestore
- deepsea hangs in stage 3 @ ceph.mgr.auth on
- deepsea monitor not working with gitfs
- stage.0 Exception: 'getpwuid(): uid not found:
- Deepsea development status after cephadm release HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from deepsea.