Commit Graph

450 Commits (3d05aa9362a3b86d59f59c25c5453190ff1591ff)

Author SHA1 Message Date
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
Vitaliy Filippov a15bd23ebd Missed a bad PG key 2020-09-11 17:56:18 +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 53832d184a Allow to use lazy sync with replicated pools 2020-09-06 12:08:44 +03:00
Vitaliy Filippov 352caeba14 Fix one more bug with replicated reads 2020-09-06 02:27:44 +03:00
Vitaliy Filippov fb533991b7 "Lock" retried objects from other flushers when accounting for overruns
Fixes a rare 100% CPU consuming hang
2020-09-06 02:19:36 +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 44973e7f27 Fix replicated pool bugs 2020-09-05 21:45:04 +03:00
Vitaliy Filippov 242d9a42a2 Change object format in prints to %lx:%lx v%lu 2020-09-05 17:44:05 +03:00
Vitaliy Filippov 68c3e96e46 Add pool setting to fio and qemu drivers 2020-09-05 17:44:00 +03:00
Vitaliy Filippov cc4714a3a7 Basic fixes for the Monitor 2020-09-05 02:14:43 +03:00
Vitaliy Filippov e051db5a73 Check for unsuccessful memory allocations 2020-09-05 01:42:11 +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 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 293cb5bd1d Parse pool configuration in etcd_state_client 2020-09-02 21:54:32 +03:00
Vitaliy Filippov 0918ea08fa Implement min/max inode filters in LIST operation 2020-09-02 14:42:40 +03:00
Vitaliy Filippov a8b3cbd6af Implement per-pool PG calculation, fix some lint warnings 2020-09-01 18:53:54 +03:00