Vitaliy Filippov
845454742d
Fix warning with QEMU 8.1
2023-12-04 01:59:07 +03:00
Vitaliy Filippov
a061246997
Do not attempt to initialize QEMU driver via vitastor_c_create_qemu_uring()
...
Test / test_snapshot_ec (push) Successful in 38s
Details
Test / test_minsize_1 (push) Successful in 18s
Details
Test / test_rm (push) Successful in 17s
Details
Test / test_snapshot_down (push) Failing after 26s
Details
Test / test_move_reappear (push) Failing after 52s
Details
Test / test_snapshot_down_ec (push) Failing after 27s
Details
Test / test_splitbrain (push) Successful in 25s
Details
Test / test_snapshot_chain (push) Successful in 2m28s
Details
Test / test_snapshot_chain_ec (push) Successful in 3m6s
Details
Test / test_rebalance_verify (push) Successful in 3m30s
Details
Test / test_rebalance_verify_imm (push) Successful in 3m29s
Details
Test / test_rebalance_verify_ec (push) Has been cancelled
Details
Test / test_write_no_same (push) Has been cancelled
Details
Test / test_heal_pg_size_2 (push) Has been cancelled
Details
Test / test_heal_ec (push) Has been cancelled
Details
Test / test_heal_csum_32k_dmj (push) Has been cancelled
Details
Test / test_heal_csum_32k_dj (push) Has been cancelled
Details
Test / test_heal_csum_32k (push) Has been cancelled
Details
Test / test_heal_csum_4k_dmj (push) Has been cancelled
Details
Test / test_heal_csum_4k_dj (push) Has been cancelled
Details
Test / test_heal_csum_4k (push) Has been cancelled
Details
Test / test_scrub (push) Has been cancelled
Details
Test / test_scrub_zero_osd_2 (push) Has been cancelled
Details
Test / test_scrub_xor (push) Has been cancelled
Details
Test / test_scrub_pg_size_3 (push) Has been cancelled
Details
Test / test_scrub_pg_size_6_pg_minsize_4_osd_count_6_ec (push) Has been cancelled
Details
Test / test_write_xor (push) Has been cancelled
Details
Test / test_scrub_ec (push) Has been cancelled
Details
Test / test_rebalance_verify_ec_imm (push) Has been cancelled
Details
Test / test_write (push) Has been cancelled
Details
It doesn't add any compatibility because vitastor_c_uring_register_eventfd()
is added in the same VITASTOR_C_API_VERSION 2.
2023-10-26 17:46:19 +03:00
Vitaliy Filippov
38db53f5ee
Implement client writeback cache
...
- Disabled by default, enable with client_enable_writeback=true
- Even then only enabled in FIO when -direct is disabled and in QEMU when
block device cache is enabled in settings
- Can also be enabled in other clients like vitastor-cli using parameter
client_writeback_allowed=true, but not recommended
2023-09-16 17:52:17 +03:00
Vitaliy Filippov
85e9f67d9d
Add supported_truncate_flags
Test / test_minsize_1 (push) Successful in 15s
Details
Test / test_interrupted_rebalance_ec_imm (push) Successful in 1m19s
Details
Test / test_rm (push) Successful in 16s
Details
Test / test_snapshot_down (push) Successful in 23s
Details
Test / test_snapshot_down_ec (push) Successful in 25s
Details
Test / test_splitbrain (push) Successful in 19s
Details
Test / test_snapshot_chain (push) Successful in 2m13s
Details
Test / test_snapshot_chain_ec (push) Successful in 2m54s
Details
Test / test_rebalance_verify (push) Successful in 3m25s
Details
Test / test_rebalance_verify_imm (push) Successful in 3m22s
Details
Test / test_write (push) Successful in 52s
Details
Test / test_write_xor (push) Successful in 55s
Details
Test / test_write_no_same (push) Successful in 15s
Details
Test / test_rebalance_verify_ec (push) Successful in 4m50s
Details
Test / test_rebalance_verify_ec_imm (push) Successful in 6m8s
Details
Test / test_heal_ec (push) Successful in 5m1s
Details
Test / test_heal_csum_32k_dmj (push) Successful in 4m32s
Details
Test / test_heal_csum_32k (push) Successful in 6m14s
Details
Test / test_heal_csum_32k_dj (push) Successful in 6m23s
Details
Test / test_scrub (push) Successful in 1m27s
Details
Test / test_heal_csum_4k_dmj (push) Successful in 6m24s
Details
Test / test_heal_csum_4k_dj (push) Successful in 6m15s
Details
Test / test_scrub_xor (push) Successful in 58s
Details
Test / test_scrub_zero_osd_2 (push) Successful in 1m1s
Details
Test / test_scrub_pg_size_6_pg_minsize_4_osd_count_6_ec (push) Successful in 55s
Details
Test / test_scrub_ec (push) Successful in 53s
Details
Test / test_scrub_pg_size_3 (push) Successful in 1m24s
Details
Test / test_heal_csum_4k (push) Successful in 4m44s
Details
Test / test_move_reappear (push) Successful in 20s
Details
Test / test_heal_pg_size_2 (push) Successful in 4m1s
Details
2023-09-06 17:37:52 +03:00
Vitaliy Filippov
79c6d6f323
Make QEMU driver compatible with QEMU 8.1
Test / test_snapshot_ec (push) Successful in 31s
Details
Test / test_minsize_1 (push) Successful in 15s
Details
Test / test_move_reappear (push) Successful in 19s
Details
Test / test_rm (push) Successful in 12s
Details
Test / test_snapshot_chain (push) Successful in 2m2s
Details
Test / test_snapshot_chain_ec (push) Successful in 2m44s
Details
Test / test_snapshot_down (push) Successful in 23s
Details
Test / test_snapshot_down_ec (push) Successful in 24s
Details
Test / test_splitbrain (push) Successful in 16s
Details
Test / test_rebalance_verify (push) Successful in 3m10s
Details
Test / test_rebalance_verify_imm (push) Successful in 3m10s
Details
Test / test_rebalance_verify_ec (push) Successful in 3m39s
Details
Test / test_rebalance_verify_ec_imm (push) Successful in 7m1s
Details
Test / test_write (push) Successful in 36s
Details
Test / test_write_xor (push) Successful in 1m11s
Details
Test / test_write_no_same (push) Successful in 14s
Details
Test / test_heal_pg_size_2 (push) Successful in 4m1s
Details
Test / test_heal_ec (push) Successful in 6m7s
Details
Test / test_heal_csum_32k_dmj (push) Successful in 5m19s
Details
Test / test_heal_csum_32k_dj (push) Successful in 5m7s
Details
Test / test_heal_csum_32k (push) Successful in 6m21s
Details
Test / test_heal_csum_4k_dmj (push) Successful in 6m22s
Details
Test / test_heal_csum_4k_dj (push) Successful in 6m40s
Details
Test / test_heal_csum_4k (push) Successful in 5m34s
Details
Test / test_scrub (push) Successful in 1m2s
Details
Test / test_scrub_zero_osd_2 (push) Successful in 46s
Details
Test / test_scrub_xor (push) Successful in 38s
Details
Test / test_scrub_pg_size_3 (push) Successful in 1m7s
Details
Test / test_scrub_pg_size_6_pg_minsize_4_osd_count_6_ec (push) Successful in 50s
Details
Test / test_scrub_ec (push) Successful in 48s
Details
2023-08-24 02:23:55 +03:00
Vitaliy Filippov
ae760dbc1d
Fix co_truncate size division by BDRV_SECTOR_SIZE
2023-08-24 01:55:35 +03:00
Vitaliy Filippov
0b2d12eef1
Remove has_work, it was unnecessary
2023-07-21 00:04:37 +03:00
Vitaliy Filippov
9815d70ffc
It is impossible to use io_uring with older vitastor-client because it does not have vitastor_c_uring_has_work()
2023-07-18 23:37:53 +03:00
Vitaliy Filippov
ba7427020e
Fix deadlocks possible in qemu-img after fixing iothread
...
Deadlock was caused by switching QEMU coroutines directly inside
vitastor_co_read_bitmap_cb() callback. The correct way is to schedule a BH
/BH is a QEMU term for setImmediate() :)/, same as in read and write callbacks.
2023-07-18 23:32:16 +03:00
Vitaliy Filippov
30ac899074
Make QEMU driver compatible with older vitastor_client and with systems without io_uring
Test / test_interrupted_rebalance (push) Successful in 1m45s
Details
Test / test_interrupted_rebalance_imm (push) Successful in 1m25s
Details
Test / test_interrupted_rebalance_ec (push) Successful in 1m23s
Details
Test / test_interrupted_rebalance_ec_imm (push) Successful in 1m37s
Details
Test / test_failure_domain (push) Successful in 8s
Details
Test / test_snapshot (push) Successful in 20s
Details
Test / test_snapshot_ec (push) Successful in 18s
Details
Test / test_minsize_1 (push) Successful in 12s
Details
Test / test_move_reappear (push) Successful in 16s
Details
Test / test_rm (push) Successful in 11s
Details
Test / test_snapshot_chain (push) Successful in 1m26s
Details
Test / test_snapshot_chain_ec (push) Successful in 2m8s
Details
Test / test_snapshot_down (push) Successful in 23s
Details
Test / test_snapshot_down_ec (push) Successful in 21s
Details
Test / test_splitbrain (push) Successful in 12s
Details
Test / test_rebalance_verify (push) Successful in 2m48s
Details
Test / test_rebalance_verify_imm (push) Successful in 2m48s
Details
Test / test_rebalance_verify_ec (push) Successful in 4m10s
Details
Test / test_rebalance_verify_ec_imm (push) Successful in 4m13s
Details
Test / test_write (push) Successful in 1m16s
Details
Test / test_write_xor (push) Successful in 38s
Details
Test / test_write_no_same (push) Successful in 15s
Details
Test / test_heal_pg_size_2 (push) Successful in 4m10s
Details
Test / test_heal_ec (push) Successful in 3m28s
Details
Test / test_scrub (push) Successful in 43s
Details
Test / test_scrub_zero_osd_2 (push) Successful in 41s
Details
Test / test_scrub_xor (push) Successful in 34s
Details
Test / test_scrub_pg_size_3 (push) Successful in 44s
Details
Test / test_scrub_pg_size_6_pg_minsize_4_osd_count_6_ec (push) Successful in 38s
Details
Test / test_scrub_ec (push) Successful in 36s
Details
2023-07-04 15:51:43 +03:00
Vitaliy Filippov
2348d39cf4
Avoid repeated qemu_uring_handlers, add 2.0-2.7 compatibility
2023-07-04 00:28:23 +03:00
Vitaliy Filippov
3de7929fe5
Integrate v2 - direct epoll
2023-07-04 00:28:23 +03:00
Vitaliy Filippov
07b2196bc2
Integrate QEMU driver with io_uring
2023-07-04 00:28:23 +03:00
Vitaliy Filippov
a11ca56fb1
Fix compatibility of the QEMU driver with iothread
Test / test_change_pg_count_ec (push) Successful in 55s
Details
Test / test_change_pg_size (push) Successful in 8s
Details
Test / test_create_nomaxid (push) Successful in 7s
Details
Test / test_etcd_fail (push) Successful in 57s
Details
Test / test_failure_domain (push) Successful in 10s
Details
Test / test_interrupted_rebalance (push) Successful in 1m53s
Details
Test / test_interrupted_rebalance_imm (push) Successful in 1m31s
Details
Test / test_interrupted_rebalance_ec (push) Successful in 2m39s
Details
Test / test_interrupted_rebalance_ec_imm (push) Successful in 1m46s
Details
Test / test_minsize_1 (push) Successful in 55s
Details
Test / test_move_reappear (push) Successful in 16s
Details
Test / test_rebalance_verify (push) Successful in 3m13s
Details
Test / test_rebalance_verify_imm (push) Successful in 2m52s
Details
Test / test_rebalance_verify_ec (push) Successful in 3m10s
Details
Test / test_rebalance_verify_ec_imm (push) Successful in 4m25s
Details
Test / test_rm (push) Successful in 18s
Details
Test / test_snapshot (push) Successful in 36s
Details
Test / test_snapshot_ec (push) Successful in 26s
Details
Test / test_splitbrain (push) Successful in 13s
Details
Test / test_write (push) Successful in 38s
Details
Test / test_write_xor (push) Successful in 1m50s
Details
Test / test_write_no_same (push) Successful in 14s
Details
Test / test_heal_pg_size_2 (push) Successful in 4m17s
Details
Test / test_heal_ec (push) Successful in 4m18s
Details
Test / test_scrub (push) Successful in 50s
Details
Test / test_scrub_zero_osd_2 (push) Successful in 51s
Details
Test / test_scrub_xor (push) Successful in 39s
Details
Test / test_scrub_pg_size_3 (push) Successful in 53s
Details
Test / test_scrub_pg_size_6_pg_minsize_4_osd_count_6_ec (push) Successful in 42s
Details
Test / test_scrub_ec (push) Successful in 28s
Details
2023-06-21 02:11:28 +03:00
Vitaliy Filippov
de3e609166
Add a FIXME about QEMU driver thread safety
2023-05-14 00:06:09 +03:00
Vitaliy Filippov
c768a9015f
Fix QEMU driver compatibility with QEMU 8.0
2023-04-25 11:20:21 +03:00
Vitaliy Filippov
8763e9211c
Fix qemu driver compilation warning/error
2023-01-13 23:44:39 +03:00
Vitaliy Filippov
137309cf29
Implement bdrv_co_block_status for snapshot export support
2023-01-07 17:06:58 +03:00
Vitaliy Filippov
3f35744052
Fix compatibility with QEMU aio_set_fd_handler signatures in 7.0 and < 2.9
2022-12-15 19:17:17 +03:00
Vitaliy Filippov
842ba8b831
Use (uint64_t)1 instead of 1l / 1ul
2022-04-16 01:48:14 +03:00
Vitaliy Filippov
8dfbd7943c
Use logical block size = 512 bytes by default
2021-12-08 23:43:40 +03:00
Vitaliy Filippov
9fca01dc62
Add a forgotten return statement
2021-12-03 00:41:49 +03:00
Vitaliy Filippov
0bd3a94efd
Use qdict_get_try_int because qdict_get_int may segfault on a missing key
2021-12-03 00:22:17 +03:00
Vitaliy Filippov
5fe3a40416
More fixes for QEMU 2.x :)
2021-12-02 02:25:50 +03:00
Vitaliy Filippov
15957b7d13
Update QEMU 4.2 patch and CentOS 7 QEMU 4.2 spec patch
2021-12-02 01:03:19 +03:00
Vitaliy Filippov
92362027a8
Build vitastor driver as part of the QEMU package by default
...
Old behaviour can be restored with cmake var WITH_QEMU=true
2021-11-29 02:05:26 +03:00
Vitaliy Filippov
43f8ea47a0
Ok, something is not allowed somewhere in C99
2021-11-24 11:28:10 +03:00
Vitaliy Filippov
879fe9b2b4
Add a patch for qemu 6.1 and replace _ with - in qemu options
2021-11-21 16:24:30 +03:00
Vitaliy Filippov
a1488f7217
Fix qemu_driver to build with QEMU 2.x (previously it was only correct for QEMU 2.0)
2021-11-08 23:07:31 +03:00
Tân Lê
e889ac4209
Fix building QEMU 3.1
2021-11-05 13:45:51 +07:00
Vitaliy Filippov
b52dd6843a
Rename qemu_rbd_unescape and qemu_rbd_next_tok to *_vitastor_*
2021-07-03 23:14:44 +03:00
Vitaliy Filippov
b66160a7ad
Aggregate per-pool statistics in mon
2021-07-03 23:14:44 +03:00
Vitaliy Filippov
6ca8afffe5
Add CAS version parameter to the C wrapper
2021-06-19 01:00:52 +03:00
Vitaliy Filippov
511a89948b
Rework qemu_proxy into a C wrapper library with public header
2021-06-19 00:39:11 +03:00
Vitaliy Filippov
818ae5d61d
Some config parsing fixes
2021-05-01 00:20:01 +03:00
Vitaliy Filippov
f6f35f4127
Pass options correctly to not override /etc/vitastor/vitastor.conf
2021-04-30 01:17:44 +03:00
Vitaliy Filippov
6a6fd6544d
Add RDMA options to the QEMU driver
2021-04-29 11:02:49 +03:00
Vitaliy Filippov
38bd51c97f
Remove aio_context assertion, it seems it is unneeded
2021-04-14 22:32:15 +03:00
Vitaliy Filippov
2612d3198a
Introduce image names and metadata storage in etcd
...
Each inode has: image name, parent inode number & pool, size and readonly flag
Snapshots are created by switching image name to a different inode number
while using the older inode as parent.
2021-04-10 17:44:12 +03:00
Vitaliy Filippov
bf9a175efc
Move C/C++ sources to src subdirectory
2021-02-25 23:59:03 +03:00