Vitaliy Filippov
322a38a144
Fix non-preserved real_pg_count leading to inability to change pools online
2020-12-04 23:46:48 +03:00
Vitaliy Filippov
a4c46ba745
Add jerasure EC support (reed_sol_van, others are slower) (not tested yet)
2020-12-04 11:47:27 +03:00
Vitaliy Filippov
9abf3c17c9
Correct fix for "Pool %u PG %u configuration is invalid" during startup
...
Establish watcher connection after loading PGs
2020-10-20 21:09:14 +00:00
Vitaliy Filippov
70612e5df0
Do not handle change events before loading config
2020-10-17 11:18:39 +00:00
Vitaliy Filippov
0471b09b9c
Add license notices to all source code files
2020-09-17 23:07:06 +03:00
Vitaliy Filippov
a15bd23ebd
Missed a bad PG key
2020-09-11 17:56:18 +03:00
Vitaliy Filippov
168cc2c803
Add pool support to OSD, part 1
...
This just fixes all the code so it builds and works like before,
but doesn't yet bring the support for replicated pools.
2020-09-04 17:04:17 +03:00
Vitaliy Filippov
4cdad634b5
Add pool support to the cluster client
2020-09-03 00:52:41 +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
2187d06eac
Add a parameter to pass the initial config to client
2020-06-07 00:10:12 +03:00
Vitaliy Filippov
c573bc6bb3
(Probably almost) implement cluster client
2020-06-07 00:09:36 +03:00
Vitaliy Filippov
36f995367f
Fix bind_address reporting
2020-05-27 10:58:40 +03:00
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
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
19f25c7cd5
Handle integer overflow of the op_stat_count
2020-05-15 01:37:17 +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
f71d0c117b
Measure & report op bandwidth, include local blockstore ops in stats
2020-05-11 02:58:13 +03:00
Vitaliy Filippov
e7f897ed65
Report hostname to etcd
2020-05-09 02:33:43 +03:00
Vitaliy Filippov
6355b968f4
Track osd_set history and all_peers separately
2020-05-04 15:28:07 +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
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
895a80dfc4
Fix etcd 3.2 compatibility (no compare.target == LEASE, /kv/lease/revoke), fix small bugs
2020-04-25 01:35:52 +03:00
Vitaliy Filippov
caa01c6aaf
Acquire etcd leases, prevent starting two OSDs with the same number
2020-04-25 01:35:52 +03:00
Vitaliy Filippov
d398ddfd3b
Use snake_case for etcd requests
2020-04-25 01:35:52 +03:00
Vitaliy Filippov
0f2b8dbf6f
Use a single timerfd_manager for all timers
2020-04-25 01:35:49 +03:00
Vitaliy Filippov
4f42e9659e
Use etcd instead of Consul
2020-04-24 01:03:55 +03:00
Vitaliy Filippov
9d22559bcf
Start peering immediately when loading PGs
2020-04-21 02:27:13 +03:00
Vitaliy Filippov
6a21ea207e
Check peer config (at least, number) after connecting
2020-04-21 00:08:54 +03:00
Vitaliy Filippov
642802b595
Auto-select port numbers
2020-04-20 17:45:27 +03:00
Vitaliy Filippov
ff38b464a5
Add consul & connect timeouts, report state before loading PGs, move init_primary to osd_cluster
2020-04-20 15:43:07 +03:00
Vitaliy Filippov
663153713b
Reconnect to peers after connecting drops
2020-04-19 01:01:26 +03:00
Vitaliy Filippov
dc57c5c362
Report PG states again, clear PG history on reaching active+clean
2020-04-19 00:48:23 +03:00
Vitaliy Filippov
f95299b769
Take PG history into account when starting PGs
2020-04-19 00:20:18 +03:00
Vitaliy Filippov
9126ffb0f9
Fix PG loading - now it works, at least once
2020-04-17 02:33:44 +03:00
Vitaliy Filippov
2a8e40835e
Fix reporting to Consul, report even if we are purely secondary
2020-04-17 01:59:06 +03:00
Vitaliy Filippov
309486d746
Implement loading PGs from Consul (in theory)
2020-04-16 23:22:32 +03:00
Vitaliy Filippov
582f485578
Extract http & getifaddr_list into a separate file
2020-04-15 15:47:06 +03:00
Vitaliy Filippov
089b4eb208
Retry consul connection attempts and then die
2020-04-15 15:33:18 +03:00
Vitaliy Filippov
37b27c3025
Implement basic OSD status reporting to Consul
2020-04-14 14:52:06 +03:00
Vitaliy Filippov
edf6d6f897
Fix http_request
2020-04-12 02:08:00 +03:00
Vitaliy Filippov
298b013eae
Add simple http request function
2020-04-11 12:05:58 +03:00