Vitaliy Filippov
faa871090f
Do not die in mon on bad JSON in etcd
2020-09-11 19:25:52 +03:00
Vitaliy Filippov
49ec8c7c63
Add --verbose 1 flag for mon
2020-09-11 18:49:07 +03:00
Vitaliy Filippov
eadd454992
Fix etcd key regexps
2020-09-11 18:33:49 +03:00
Vitaliy Filippov
e3f502b466
Oops, I forgot a file
2020-09-11 17:49:44 +03:00
Vitaliy Filippov
6e72cf2732
Disable stdout/stderr buffering
2020-09-11 16:52:51 +03:00
Vitaliy Filippov
73e26dbbea
Add up_wait_retry_interval to config and fix it so it actually works
2020-09-05 22:05:21 +03:00
Vitaliy Filippov
cc4714a3a7
Basic fixes for the Monitor
2020-09-05 02:14:43 +03:00
Vitaliy Filippov
4f9b5286a0
Add replicated pool support to OSD logic
...
...in theory :-D now it needs some testing
2020-09-05 01:42:11 +03:00
Vitaliy Filippov
293cb5bd1d
Parse pool configuration in etcd_state_client
2020-09-02 21:54:32 +03:00
Vitaliy Filippov
a8b3cbd6af
Implement per-pool PG calculation, fix some lint warnings
2020-09-01 18:53:54 +03:00
Vitaliy Filippov
fe0d78bf8e
Filter configuration keys with regexps instead of "osd_tree" value checks
2020-09-01 17:07:06 +03:00
Vitaliy Filippov
085c145a18
Document etcd data (to-be state with pools) at least in some form
2020-09-01 16:29:45 +03:00
Vitaliy Filippov
30da4bddbe
Extract scale_pg_count into a separate file
2020-09-01 16:18:58 +03:00
Vitaliy Filippov
14b4a4617e
(re)move placement_tree
2020-09-01 16:18:58 +03:00
Vitaliy Filippov
a86788fe3b
Support optimizing for the case when parity chunks occupy more space than data chunks
...
Mostly as an experiment because the problem solved by this commit
comes from Ceph's EC+compression implementation details and I'm not sure
if my implementation will be the same
2020-08-17 01:44:19 +03:00
Vitaliy Filippov
95ebfad283
Final name is Vitastor
2020-08-03 23:50:59 +03:00
Vitaliy Filippov
6022f28dc9
Add pseudo-random PG generation
2020-07-07 23:13:07 +03:00
Vitaliy Filippov
9d10a4d057
Support arbitrary pg_size in LPOptimizer
2020-07-05 20:28:05 +03:00
Vitaliy Filippov
a7929931eb
Implement PG epochs to prevent the "version split"
...
The "version split" is when:
- A block is written to 1 OSD out of 3, all of them die
- OSDs 2 and 3 come up, the same block is written to both of them
- The remaining OSD comes up. Now all 3 OSDs have the same version of the same object,
but with different data.
2020-07-04 00:55:27 +03:00
Vitaliy Filippov
fac75b0b57
Handle reweights in mon
2020-05-22 12:52:27 +03:00
Vitaliy Filippov
f57731f8ca
Calculate total stats in the monitor
2020-05-15 01:37:17 +03:00
Vitaliy Filippov
2c3e84cc41
Implement stop_all_pgs()
2020-05-15 01:37:17 +03:00
Vitaliy Filippov
7bda66b866
Do not crash when optimising PGs in an undersized cluster
2020-05-15 01:29:15 +03:00
Vitaliy Filippov
b467d0559f
Begin node.js storage monitor service
2020-05-15 01:29:15 +03:00
Vitaliy Filippov
47b6f64106
Support level names
2020-05-11 15:57:21 +03:00
Vitaliy Filippov
2b854948f9
Remove dead code
2020-05-09 16:15:02 +03:00
Vitaliy Filippov
c26b6e1fc3
Support CRUSH-like multi-level placement trees
2020-05-09 00:55:24 +03:00
Vitaliy Filippov
aaa054e644
Fix optimize_change generating infeasible problems
...
Mainly happened when removing PG combinations (removing OSDs)
Also randomize OSD combinations when there's a lot of them
Also remove Perl version
2020-05-08 16:42:40 +03:00
Vitaliy Filippov
706a44d4d4
Fix optimize_initial in both perl and js versions
2020-05-06 23:12:03 +03:00
Vitaliy Filippov
842f88f94f
Rewrite LPOptimizer.pm to nodejs
2020-05-06 02:08:15 +03:00
Vitaliy Filippov
ddc3e927d3
Solve it in integers
2020-03-20 13:58:54 +03:00
Vitaliy Filippov
2aa605f2bb
Do not check
2020-03-20 13:38:35 +03:00
Vitaliy Filippov
18915b264a
Extract to .pm + fix all_combinations
2020-03-19 21:35:47 +03:00
Vitaliy Filippov
60f795e7eb
Add lp_solve based data distribution optimizer
2020-03-19 17:23:24 +03:00