Vitaliy Filippov
0aca6e9ca8
Extract peer connect and read-write loop into a separate file (to be shared with the client library)
2020-05-26 22:11:30 +03:00
Vitaliy Filippov
fa98be6bc0
Allow to specify multiple etcd addresses
2020-05-25 16:30:05 +03:00
Vitaliy Filippov
256a7f2667
Free op->bs_op manually
2020-05-25 15:31:22 +03:00
Vitaliy Filippov
79bf57b6e2
Allow to override pg_stripe_size
2020-05-25 15:31:22 +03:00
Vitaliy Filippov
53f6aba3e6
Die when journal_sector_buffer_count is too small
2020-05-24 17:26:47 +03:00
Vitaliy Filippov
36595eb669
Print "Ran out of journal sector buffers" warning
2020-05-24 16:48:50 +03:00
Vitaliy Filippov
e09d0e0678
Several bug fixes
...
- Do not block flock() requests
- Fix stop_client(0) attempts leading to std::bad_function_call
- Fix degraded writes crashing due to an unset stripes[i].missing (at least with a missing parity device)
- Fix recovery B/W reporting
2020-05-24 01:51:35 +03:00
Vitaliy Filippov
d1602b50b3
Fix BS_OP_ROLLBACK removing an incorrect version
...
Instead of only removing versions with oid == X and version > Y it was
also removing the previous version in list (with the previous oid or
with version == Y)
2020-05-24 01:51:28 +03:00
Vitaliy Filippov
7df384031a
Re-peer PGs after stopping the peer
...
Fixes the bug where two peers killed at once have lead to PG state PG_DEGRADED|PG_HAS_INCOMPLETE instead of PG_INCOMPLETE
2020-05-23 18:45:12 +03:00
Vitaliy Filippov
e614a98543
Add a sad FIXME :-)
2020-05-23 15:43:37 +03:00
Vitaliy Filippov
01dd3ef89e
Fix timerfd_manager triggering of multiple times at the same time
2020-05-23 15:43:37 +03:00
Vitaliy Filippov
cdccc23aff
Print [OSD $osd_num] in stats, print B/W only for ops that log bytes
2020-05-23 15:43:37 +03:00
Vitaliy Filippov
700428829a
Fix autosync_interval default not setting when autosync_interval is skipped in config
2020-05-23 15:43:37 +03:00
Vitaliy Filippov
6488d0044a
Ignore EPOLL_CTL_DEL ENOENT, fix detection of the rollback version
2020-05-23 15:43:37 +03:00
Vitaliy Filippov
393fe75900
Fix creepy (osd_op_t*)(long) casts
2020-05-23 15:43:37 +03:00
Vitaliy Filippov
f036eecf1c
Fix osd_rmw object recovery case (len==0)
2020-05-23 15:43:37 +03:00
Vitaliy Filippov
e56909fb45
Remove tv_send (unused) and timerfd_interval from blockstore
2020-05-22 15:57:08 +03:00
Vitaliy Filippov
fac75b0b57
Handle reweights in mon
2020-05-22 12:52:27 +03:00
Vitaliy Filippov
9f842ec9a5
Remove connect callback because it is always the same
2020-05-22 12:45:12 +03:00
Vitaliy Filippov
f6a01a4819
Extract "state-watching" etcd client into a separate file
2020-05-22 12:38:40 +03:00
Vitaliy Filippov
6202260018
Extract HTTP client functions from osd_t
2020-05-21 11:39:01 +03:00
Vitaliy Filippov
a61ede9951
Remove io_uring usage from osd_http and timerfd_manager
...
For better future interoperability with external event loops such as QEMU's one
2020-05-21 01:25:38 +03:00
Vitaliy Filippov
f57731f8ca
Calculate total stats in the monitor
2020-05-15 01:37:17 +03:00
Vitaliy Filippov
19f25c7cd5
Handle integer overflow of the op_stat_count
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
c2c2eefea4
Duplicate host in osd/state and osd/stats, take PGs from /config/pgs.items
2020-05-15 01:29:15 +03:00
Vitaliy Filippov
5084ff7c6c
Measure & report recovery op count and bandwidth
2020-05-15 01:29:15 +03:00
Vitaliy Filippov
47b6f64106
Support level names
2020-05-11 15:57:21 +03:00
Vitaliy Filippov
f71d0c117b
Measure & report op bandwidth, include local blockstore ops in stats
2020-05-11 02:58:13 +03:00
Vitaliy Filippov
2b854948f9
Remove dead code
2020-05-09 16:15:02 +03:00
Vitaliy Filippov
e7f897ed65
Report hostname to etcd
2020-05-09 02:33:43 +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
e8149e5848
Implement OSD_OP_DELETE
2020-05-05 00:39:51 +03:00
Vitaliy Filippov
6355b968f4
Track osd_set history and all_peers separately
2020-05-04 15:28:07 +03:00
Vitaliy Filippov
00cf24fbd7
Split osd_primary.cpp
2020-05-03 11:04:20 +03:00
Vitaliy Filippov
1bc08174f9
Sync before listing objects so flushes do not fail thereafter
2020-05-01 12:56:49 +03:00
Vitaliy Filippov
cd87333091
Fix PG state comparison leading to unclean PGs not flushing
...
(a & b == b) -> ((a & b) == b) !
2020-05-01 12:56:46 +03:00
Vitaliy Filippov
bd0fe6e4cc
Fix PGs not stopping during sync, fix state reporting autovivification of erased PGs
2020-05-01 01:33:14 +03:00
Vitaliy Filippov
ce78454215
Reply with -EROFS to write commands in readonly mode
2020-05-01 00:54:34 +03:00
Vitaliy Filippov
762bd42096
Fix use-after-free caused by "delete this" in handle_read
2020-04-30 02:15:53 +03:00
Vitaliy Filippov
7b57eeeeb3
Implement PG state locking and PG moving in response to etcd events
2020-04-29 22:23:38 +03:00
Vitaliy Filippov
ec4a52af48
Fix websocket (and timer!) bugs
2020-04-26 01:59:56 +03:00
Vitaliy Filippov
268b497c0b
Implement simple websocket client
2020-04-25 23:11:50 +03:00
Vitaliy Filippov
35481925b1
Implement very simple HTTP streaming to handle etcd watches
2020-04-25 01:35:52 +03:00
Vitaliy Filippov
895a80dfc4
Fix etcd 3.2 compatibility (no compare.target == LEASE, /kv/lease/revoke), fix small bugs
2020-04-25 01:35:52 +03:00