Commit Graph

468 Commits (9abf3c17c93c63fc14b8b655823d9d4201d2cd33)

Author SHA1 Message Date
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 d2b901aa09 Fix default auto-created failure domains 2020-10-20 21:07:40 +00:00
Vitaliy Filippov befff09370 Fix possible crash due to uninitialized ring_data_t in ringloop 2020-10-20 10:44:38 +03:00
Vitaliy Filippov d1645551d4 Implement write batching
Also fix possible race condition which could in theory lead to "command out of sync"
and a buffer overflow that could happen on incorrect server response.
2020-10-20 03:29:17 +03:00
Vitaliy Filippov 7cb561f95a Add etcd to the example service generator 2020-10-20 01:50:56 +03:00
Vitaliy Filippov ae480196e2 Add a note about etcd bug, fix simple-offsets.js cmdline 2020-10-19 17:05:45 +03:00
Vitaliy Filippov 398c86f943 Improve PG-related log messages 2020-10-18 12:17:22 +00:00
Vitaliy Filippov bec5f921a6 Fix buffer overflows in the no_same_sector_overwrites mode 2020-10-17 23:30:16 +00:00
Vitaliy Filippov 5335c8de8e Do not use unordered_map for list_ops/list_results 2020-10-17 23:30:16 +00:00
Vitaliy Filippov c696a82083 Replace assert with if + error message (may happen on metadata corruption) 2020-10-17 23:30:16 +00:00
Vitaliy Filippov 900171586b XOR 2+1 test results 2020-10-17 14:58:08 +03:00
Vitaliy Filippov 70612e5df0 Do not handle change events before loading config 2020-10-17 11:18:39 +00:00
Vitaliy Filippov d952c24979 Use timeout in rw callback 2020-10-17 11:00:55 +00:00
Vitaliy Filippov 776fe954a5 Fix crashes on multiple OSD reconnects
Identify clients by pointers instead of peer_fd as peer may be dropped
and reconnected between callbacks

Yeah maybe I need some Rust, but ... maybe in the future :)
2020-10-17 10:53:04 +00:00
Vitaliy Filippov 9350656af6 Fix osd tags 2020-10-16 23:28:48 +00:00
Vitaliy Filippov ece14a7d65 Hide "Connected with..." client messages by default 2020-10-11 02:22:46 +03:00
Vitaliy Filippov be5f314c32 Change notes about gcc requirement to 9+, fio to 3.16+ 2020-10-11 02:00:39 +03:00
Vitaliy Filippov 15dba96375 Implement inode removal tool. Removes multiple objects from multiple OSDs in parallel 2020-10-10 01:08:19 +03:00
Vitaliy Filippov 3d05aa9362 Make it build with GCC 10, fio 3.20+ (atomics...) and QEMU 5.1 2020-10-06 02:35:11 +03:00
Vitaliy Filippov 94efb54feb Implement OSD tags (device classes), fix pool failure_domain configuration 2020-10-04 17:31:50 +03:00
Vitaliy Filippov aa2a0ee00f Do not group adjacent stripes by default as it's pointless on SSDs 2020-10-02 10:17:54 +03:00
Vitaliy Filippov 9f2a948712 Make pg_stripe_size a per-pool config 2020-10-01 18:51:49 +03:00
Vitaliy Filippov ba74eece4a More fixes to the failure model (why am I doing this?..) 2020-10-01 18:38:30 +03:00
Vitaliy Filippov 2fdd8a1b38 More correct failure model (I hope so) 2020-10-01 02:33:48 +03:00
Vitaliy Filippov 526983f7a9 Add usable CLI commands for NBD proxy (map/unmap/list) 2020-09-29 02:06:19 +03:00
Vitaliy Filippov 8e36f04482 One more experiment with cluster AFR% 2020-09-27 19:42:42 +03:00
Vitaliy Filippov f460d8c1c8 Add note about NBD 2020-09-26 00:11:55 +03:00
Vitaliy Filippov 7619a789c0 Set request size in NBD 2020-09-26 00:01:23 +03:00
Vitaliy Filippov e65a28e27e Implement a simple NBD proxy (does not daemonize yet) 2020-09-25 20:51:01 +03:00
Vitaliy Filippov 6852f299ae Add functions to calculate AFR for a cluster 2020-09-24 23:15:26 +03:00
Vitaliy Filippov 1967269c13 Resume operations in cluster_client when PGs are loaded (fixes a hang in qemu-img) 2020-09-20 01:50:19 +03:00
Vitaliy Filippov 7574183ba6 Make qemu driver build with QEMU 3.x 2020-09-20 01:50:19 +03:00
Vitaliy Filippov 108cd6312d Correct some typos in README, add note about qemu-img 2020-09-20 01:50:19 +03:00
Vitaliy Filippov 588b9e6393 Add README 2020-09-17 23:07:50 +03:00
Vitaliy Filippov 0471b09b9c Add license notices to all source code files 2020-09-17 23:07:06 +03:00
Vitaliy Filippov ef911555ed Add cpp-btree and json11 submodules 2020-09-17 23:07:06 +03:00
Vitaliy Filippov 9d20839a02 Add license texts 2020-09-17 23:07:06 +03:00
Vitaliy Filippov 67a2e5640c Fix a GIANT memory leak on read :D 2020-09-17 00:45:59 +03:00
Vitaliy Filippov 28a0f08ce7 Add a very simple tool for calculating device offsets 2020-09-17 00:45:59 +03:00
Vitaliy Filippov 9b4e5b64ae Move monitor to mon/ 2020-09-16 02:15:26 +03:00
Vitaliy Filippov 4ca2eeafff Prefer data OSDs for EC/XOR because they can actually read something locally 2020-09-16 01:34:18 +03:00
Vitaliy Filippov 79156e0ee1 Add test systemd unit generation script 2020-09-13 12:50:15 +03:00
Vitaliy Filippov ed26c33f85 React to down OSDs instantly, set timer to recheck PGs after <osd_out_time> 2020-09-13 12:23:18 +03:00
Vitaliy Filippov 18692517be Increase receive_buffer_size 2020-09-13 00:39:20 +03:00
Vitaliy Filippov de6919b02b Add option to disable multiple overwrites of the same journal sector
This makes sense for some SSDs like Intel D3-4510 because they don't
like overwrites of the same sector:

$ fio -direct=1 -rw=write -bs=4k -size=4k -loops=100000 -iodepth=1
  write: IOPS=3142, BW=12.3MiB/s (12.9MB/s)(97.9MiB/7977msec)

$ fio -direct=1 -rw=write -bs=4k -size=128k -loops=100000 -iodepth=1
  write: IOPS=20.8k, BW=81.4MiB/s (85.3MB/s)(543MiB/6675msec)
2020-09-13 00:37:39 +03:00
Vitaliy Filippov 8f9f438e25 Allow zero reweights, fix changing pgs 2020-09-11 23:59:30 +03:00
Vitaliy Filippov db4b82089e connecting=true was also forgotten 2020-09-11 19:51:17 +03:00
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