Vitaliy Filippov
915d04c446
Allow empty global configuration, report OSD statistics faster
2021-02-01 19:31:10 +03:00
Vitaliy Filippov
21e06ea40d
Fix memory leaks in fio engines
2021-02-01 19:31:10 +03:00
Vitaliy Filippov
9ef7f865b0
Fix incorrect calls to prepare_journal_sector_write() when flushing multiple sectors
2021-02-01 19:31:10 +03:00
Vitaliy Filippov
9dd20a31aa
Do not use pg_minsize in the client code!
2021-02-01 19:31:10 +03:00
Vitaliy Filippov
28be049909
Dump only actual part of the journal by default
2021-01-01 23:04:30 +03:00
Vitaliy Filippov
78fbaacf1f
External jerasure's w into defines
...
In fact, w=8 looks better than w=32, so it may be changed in the future
2020-12-31 19:15:22 +03:00
Vitaliy Filippov
1526c5a213
Add lp_solve into dependencies
2020-12-31 01:32:31 +03:00
Vitaliy Filippov
c7cc414c90
Skip removed descriptors in epoll (this is possible in real clusters)
2020-12-30 17:04:18 +03:00
Vitaliy Filippov
f4ea313707
Fix cl->read_op being freed without calling the completion callback
2020-12-30 16:55:54 +03:00
Vitaliy Filippov
b88b76f316
Parallel usage of multiple network interfaces was a sick fantasy
2020-12-30 00:05:17 +03:00
Vitaliy Filippov
4a17a61d1f
Make rm_inode work with incomplete and degraded objects, allow to wait before deleting objects
2020-12-28 16:38:08 +03:00
Vitaliy Filippov
ccabbbfbcb
For reference: include a spec patch for building QEMU 4.2 or CentOS 7
2020-12-06 15:43:38 +03:00
Vitaliy Filippov
26dac57083
State that jerasure is now supported
2020-12-06 15:25:48 +03:00
Vitaliy Filippov
44a53d8352
Huh. Fix rpath for packages
2020-12-05 20:16:39 +03:00
Vitaliy Filippov
9d80bd2d98
Build with jerasure, split some build scripts
2020-12-05 19:02:23 +03:00
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
1018764c91
Fix write->delete->write bugs, add & fix some debugging output
2020-12-04 23:21:58 +03:00
Vitaliy Filippov
a45e0e5e67
Use custom decoding instead of just jerasure_matrix_decode()
...
- Cache the decoding matrix
- Don't do unnecessary erasures->erased conversion during decoding
- Avoid extra memory allocations during decoding
- Don't always reconstruct coding chunks
- Reconstruct chunks one-by-one, without overlapping ranges
2020-12-04 17:43:48 +03:00
Vitaliy Filippov
44656fbf67
Allow writes with low version numbers after a delete
2020-12-04 11:54:41 +03:00
Vitaliy Filippov
089f138e0c
Allow situations where the journal contains a big_write(v1) after delete(v2) and v1 < v2
...
Fixes a crash in the following scenario:
- client issues a delete request (object version is at least 2)
- OSD has time to flush it to the metadata, but doesn't have time to move the journal start pointer on disk
- client overwrites the same object and it gets the version number 1 again
- OSD is restarted and sees delete(v=2), big_write(v=1) in the journal
- dirty_db sequence gets broken and OSD crashes with assert("Writes and deletes shouldn't happen at the same time")
2020-12-04 11:47:27 +03:00
Vitaliy Filippov
bcc8e697f9
Delete PGs when deleting pools
...
(All OSD crash with "Online PG count change not allowed" if you try to delete an active pool though)
2020-12-04 11:47:27 +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
5596ad8997
Use custom QEMU build for CentOS 7
2020-12-04 11:47:05 +03:00
Vitaliy Filippov
59c29b0cee
Fix RPATH for CentOS builds, add additional repos into the CentOS installation instructions
2020-12-04 11:47:04 +03:00
Vitaliy Filippov
959089b919
Enable progress_notify=true for etcd watches
2020-11-17 16:29:42 +03:00
Vitaliy Filippov
d3e7749616
Final fixes for packaging
2020-11-10 23:33:07 +03:00
Vitaliy Filippov
b56f8820ec
Container packaging for Debian 11 Bullseye, CentOS 7 and CentOS 8
2020-11-10 00:02:53 +03:00
Vitaliy Filippov
4bd2bd48eb
Build Vitastor packages, too
2020-11-09 14:41:39 +03:00
Vitaliy Filippov
a3fc9f8d7d
Add a Dockerfile to build patched QEMU for Debian (Buster)
2020-11-09 02:30:41 +03:00
Vitaliy Filippov
530975aed7
Make it also build with GCC 8 and on Debian Buster
2020-11-09 00:07:07 +03:00
Vitaliy Filippov
1446aad107
Simple patch for qemu-kvm .spec
2020-11-08 02:14:53 +03:00
Vitaliy Filippov
46479e2456
Add RPM build scripts for CentOS 8
2020-11-08 01:55:17 +03:00
Vitaliy Filippov
e41bee72a5
Lower node.js requirement to 10.x
2020-11-08 01:54:12 +03:00
Vitaliy Filippov
2e0f223ddb
Add RPM build scripts for CentOS 7
2020-11-07 01:52:10 +03:00
Vitaliy Filippov
3be7bc29d8
Make it build with QEMU 2.0, too
...
Also begin to work on rpms
2020-11-06 20:05:00 +03:00
Vitaliy Filippov
0c43ff9daf
Add scripts to copy fio and qemu includes to the source package
2020-11-06 18:40:42 +03:00
Vitaliy Filippov
64d471cf53
Add simple Debian packaging
2020-11-06 18:40:42 +03:00
Vitaliy Filippov
809b2ad8cd
Add install target
2020-11-06 01:12:22 +03:00
Vitaliy Filippov
550d4af151
Rename test.cpp to test_shit.cpp (random shit)
2020-11-06 01:12:22 +03:00
Vitaliy Filippov
cf0f23ab8e
Add patches for QEMU QAPI IDL
2020-11-04 23:30:51 +03:00
Vitaliy Filippov
a516fefa8c
Add qemu_module_dummy and qemu_stamp_xxx to qemu_driver.c
2020-11-04 23:10:29 +03:00
Vitaliy Filippov
3b7279b376
Add Ceph EC 2+1 test results
2020-11-01 14:13:35 +03:00
Vitaliy Filippov
824ea507d0
Do not try to push more segments than IOV_MAX at once as it leads to EMSGSIZE
2020-10-30 01:25:43 +03:00
Vitaliy Filippov
23ea409081
Fix "can't get SQE, will fall out of sync with EPOLLET" when overflowing the ring
...
OSDs shouldn't crash or hang with long iodepths anymore
2020-10-30 01:06:36 +03:00
Vitaliy Filippov
2ccb75974b
Fix a rare crash caused by a stopped client still being in write_ready_clients
2020-10-30 01:04:58 +03:00
Vitaliy Filippov
6561d4e040
Validate pool ID before executing the operation
...
Reply -EPIPE for non-existing pools because we assume that it means
that pool config isn't loaded yet. Previously OSD crashed on such operations
2020-10-30 01:02:46 +03:00
Vitaliy Filippov
1eda7f529d
Note about Linux 5.8+
2020-10-28 19:17:22 +03:00
Vitaliy Filippov
0a174bb313
Return success for already finished rollback operations
...
There was a FIXME and I actually hit it during tests :)
2020-10-24 18:46:19 +03:00
Vitaliy Filippov
720985e4c7
Fix NULL rmw buffer after the latest changes and add a testcase for it
2020-10-24 18:29:19 +03:00
Vitaliy Filippov
4872f617a4
Clear connect timeout in stop_client() to stop races during disconnections
2020-10-24 10:37:16 +03:00