Vitaliy Filippov
65b0e8e940
Fix typo in VNPL-1.1
2022-06-24 01:34:25 +03:00
Vitaliy Filippov
bce357e2a5
Do not read all metadata into memory when dumping
2022-06-13 01:26:30 +03:00
Vitaliy Filippov
0876ca09cd
Fix dumper includes and print format
2022-06-11 00:30:44 +03:00
Vitaliy Filippov
dac12d8a4c
Implement metadata dump tool
2022-06-10 18:50:09 +03:00
Vitaliy Filippov
1eec4407ab
Fix inode creation when /index/maxid is out of sync
2022-06-06 16:35:51 +03:00
Vitaliy Filippov
342517d126
Fix typo
2022-06-05 00:45:02 +03:00
Vitaliy Filippov
675bc12a13
Add extern "C" for systems like Gentoo which miss it in jerasure includes
2022-06-05 00:33:38 +03:00
Vitaliy Filippov
101592bbff
Release 0.7.1
...
- Add ISA-L erasure code implementation, now used automatically instead of jerasure when available
- Fix listings sending too many parallel requests to OSDs
- Fix rm-data crashing with --wait-list
- Remove empty inodes from statistics and `ls` output, after <inode_vanish_time> seconds after deletion
- Make monitor delete pool statistics when the pool is deleted and thus remove them from `df` output
- Log multiple etcd addresses in OSD logs correctly
- Fix true/false parsing in json configs like no_recovery/no_rebalance
- Show no_recovery, no_rebalance, readonly flags in status
2022-06-05 00:07:24 +03:00
Vitaliy Filippov
be4087d9d2
Add a FIXME to test_interrupted_rebalance
2022-06-05 00:06:56 +03:00
Vitaliy Filippov
404e43dd2d
Note that ISA-L does not need to be enabled separately
2022-06-04 22:58:02 +03:00
Vitaliy Filippov
87613ed590
Add ISA-L into RPM specs
2022-06-04 13:27:06 +03:00
Vitaliy Filippov
2a2e914ef9
Show no_recovery, no_rebalance and readonly flags in status
2022-06-04 13:27:06 +03:00
Vitaliy Filippov
0cdc9292c8
Fix true/false parsing in json configs like no_recovery/no_rebalance
2022-06-04 13:27:06 +03:00
Vitaliy Filippov
3e1b03bb5c
Show all etcd addresses in the "reporting to..." message
2022-06-04 13:27:06 +03:00
Vitaliy Filippov
36e851505a
Make monitor delete pool statistics when the pool is deleted
2022-06-04 13:27:06 +03:00
Vitaliy Filippov
1efbbb0c36
Make deleted inodes vanish from statistics after 60 seconds
2022-06-04 13:27:06 +03:00
Vitaliy Filippov
088dd15449
Exclude empty inodes from stats
2022-06-04 00:18:17 +03:00
Vitaliy Filippov
4a531d7b8b
Fix listings sending too many parallel requests to OSDs, fix rm-data crashing with --wait-list
2022-06-03 23:36:37 +03:00
Vitaliy Filippov
a0cae4c180
Rename "jerasure" to "ec" in pool configuration, function names, fix documentation and Debian build scripts
...
Old pool configurations with "jerasure" also remain supported as an alias for "ec"
2022-06-03 15:40:00 +03:00
Vitaliy Filippov
c4eb46600d
Merge run_3osds and run_7osds scripts
2022-06-03 01:56:36 +03:00
Vitaliy Filippov
21b306e25f
Add ISA-L support
2022-06-02 01:47:33 +03:00
Vitaliy Filippov
d8313e939a
Release 0.7.0
...
- Add documentation! :-) in Russian and English
- Implement an NFS proxy for file-based access emulation to Vitastor
images for non-QEMU based hypervisors like VMWare, as a better way
than iSCSI
- Implement "primary affinity tags"
- Add a patch for libvirt 6.0
- Fix free_down_raw in cli status
- Fix a rare bug where OSDs could drop unrelated connections on errors
2022-05-29 23:39:53 +03:00
Vitaliy Filippov
82b9f4c52d
Add a test with OSD kills
2022-05-28 00:51:14 +03:00
Vitaliy Filippov
2bdf415eb3
Fix unknown OSD numbers on error
2022-05-28 00:51:14 +03:00
Vitaliy Filippov
f826831282
Describe OSD placement tree and reweights
2022-05-17 10:42:11 +03:00
Vitaliy Filippov
5d47bbe04c
Add documentation
2022-05-17 01:10:49 +03:00
Vitaliy Filippov
93a9f1ef89
Fix NFS socket read hangs
2022-05-11 21:06:56 +03:00
Vitaliy Filippov
2697aae909
Fix free_down_raw in cli status
2022-05-11 18:08:45 +03:00
Vitaliy Filippov
6b69db73ac
Remove getrandom() usage
2022-05-11 11:25:20 +03:00
Vitaliy Filippov
d48a824846
Fix some warnings
2022-05-10 12:42:58 +03:00
Vitaliy Filippov
40985282ff
Fix build under GCC 8
2022-05-10 12:26:47 +03:00
Vitaliy Filippov
acf403e886
Add install target for NFS proxy
2022-05-10 10:43:17 +03:00
Vitaliy Filippov
cf03b9c84d
Implement "primary affinity tags"
2022-05-09 22:37:23 +03:00
Vitaliy Filippov
7c2379d458
Simplified NFS proxy based on own NFS/XDR implementation
2022-05-07 01:01:20 +03:00
Vitaliy Filippov
a2189100dd
Make CLI functions usable in library form
...
Return results and errors in a variable instead of just printing them,
separate vitastor-cli main() from cli_tool_t, move positional argument
parsing to CLI main from command implementations.
2022-05-06 02:18:32 +03:00
Vitaliy Filippov
bb84379db6
Release 0.6.17
...
- Fix incorrect reading of extra metadata block leading to extra unknown objects in stats
- Fix CSI driver volumeMode: Block support
- Add block PVC and pod examples
- Fix build under 32 bit architectures
- Fix slow connection ramp-up caused by up_wait_retry_interval
2022-05-06 02:18:01 +03:00
Vitaliy Filippov
714dda8151
Fix slow connection ramp-up caused by up_wait_retry_interval pausing operations on first connection attempt
2022-05-06 02:12:08 +03:00
Vitaliy Filippov
834554c523
LD_PRELOAD=libasan.so.5 fio in tests fails when vitastor is built with ASan
2022-05-05 02:11:34 +03:00
Vitaliy Filippov
e718116f54
Fix incorrect reading of extra metadata block
2022-04-21 02:52:21 +03:00
Vitaliy Filippov
98e3528a14
Add block PVC and pod examples
2022-04-17 15:43:37 +03:00
Vitaliy Filippov
8e88f77101
Fix CSI driver volumeMode: Block support
2022-04-17 15:39:11 +03:00
Vitaliy Filippov
caa2cc2e6c
Fix 32bit build error
2022-04-16 01:48:24 +03:00
Vitaliy Filippov
842ba8b831
Use (uint64_t)1 instead of 1l / 1ul
2022-04-16 01:48:14 +03:00
Vitaliy Filippov
1493823f9e
Note about starting monitors
2022-04-12 15:00:28 +03:00
Vitaliy Filippov
c857272f44
Comment: epoch is uint64_t
2022-04-10 12:21:37 +03:00
Vitaliy Filippov
340a4b4f27
Release 0.6.16
...
- Implement `vitastor-cli status` (print cluster status) command
- Add a new `make-osd-hybrid.js` script to quickly prepare a lot of hybrid (HDD+SSD) OSDs
- Implement snapshot deletion for Cinder driver (only works in a healthy cluster)
- Fix a huge :) bug causing reads to return all zeroes during rebalance. Add a test to prevent it in the future
- Disconnect NBD proxy correctly without leaving a zombie [vitastor-nbd] process in D state
- Fix a rare write hang appearing with small write throttling enabled
2022-04-09 01:16:52 +03:00
Vitaliy Filippov
5118980315
Add a script to run all tests
2022-04-09 01:14:00 +03:00
Vitaliy Filippov
d71cc174e3
Implement CLI status command
2022-04-09 00:25:51 +03:00
Vitaliy Filippov
0eb929f1ba
Fix change_pg_count test (statistic reporting may take some time)
2022-04-08 11:58:53 +03:00
Vitaliy Filippov
83146fa3e2
Fix the same HUGE bug for regular reads during rebalance
2022-04-08 11:50:09 +03:00
Vitaliy Filippov
15dcaf7903
Add the same "rebalance" test with regular reads
2022-04-08 11:48:31 +03:00
Vitaliy Filippov
cd18ef7323
Disconnect NBD proxy correctly without leaving a zombie [vitastor-nbd] process in D state
2022-04-07 16:03:35 +03:00
Vitaliy Filippov
39531ef1a6
Fix incorrect chained reads during rebalance (the bug detected by test_rebalance_verify.sh)
2022-04-07 15:56:58 +03:00
Vitaliy Filippov
d334914948
Fix the test so it actually fails indicating a bug :-)
2022-04-07 15:56:26 +03:00
Vitaliy Filippov
c373425562
Fix nbd log
2022-04-07 15:55:38 +03:00
Vitaliy Filippov
3615e57879
Register standby monitors in etcd in /mon/member
2022-04-04 00:48:52 +03:00
Vitaliy Filippov
0edc6fe5a6
Add notes about the new script
2022-04-03 13:04:34 +03:00
Vitaliy Filippov
9c30df83e3
Fix a HUGE :) bug in NBD proxy
...
The bug could result in corrupted data on large writes
2022-04-03 10:42:06 +03:00
Vitaliy Filippov
a420c77107
Add rebalance-verify test
2022-04-03 10:42:06 +03:00
Vitaliy Filippov
4100d829c7
Allow to override log file for daemonized NBD proxy
2022-04-03 02:41:04 +03:00
Vitaliy Filippov
79ebda933e
Fix a write hang with throttling due to timer reenterability / triggerability
2022-03-28 01:42:06 +03:00
Vitaliy Filippov
65d08e067e
Add a script for preparing hybrid (HDD+SSD) OSDs
2022-03-28 01:11:26 +03:00
Vitaliy Filippov
d289753df4
Implement snapshot deletion for Cinder driver
2022-03-08 11:41:29 +03:00
Vitaliy Filippov
85298ddae2
Release 0.6.15
...
- Make peering much faster in medium to large clusters
- Fix a reenterability issue which could rarely lead to peering process hangs
2022-03-06 19:16:34 +03:00
Vitaliy Filippov
e23296a327
Rename cli_rm -> cli_rm_data, cli_snap_rm -> cli_rm
2022-02-24 14:34:14 +03:00
Vitaliy Filippov
839ec9e6e0
Shard clean_db by PGs to speedup listings
2022-02-20 00:21:24 +03:00
Vitaliy Filippov
7cbfdff41a
Replace some throws with force_stop
2022-02-20 00:21:19 +03:00
Vitaliy Filippov
951272f27f
Try to process PG one after another
2022-02-19 19:25:55 +03:00
Vitaliy Filippov
a3fb1d4c98
Fix reenterability around set_timer
2022-02-19 18:28:12 +03:00
Vitaliy Filippov
88402e6eb6
Move next_request to run_cb_and_clear
2022-02-19 16:59:03 +03:00
Vitaliy Filippov
390239c51b
Don't terminate HTTP requests with timeouts if response is already available in the socket
2022-02-19 13:37:12 +03:00
Vitaliy Filippov
b7b2adfa32
Fix http client not continuing requests in case of failure to connect
2022-02-19 13:36:26 +03:00
Vitaliy Filippov
36c276358b
Attempt to fix "head-of-line blocking" by LIST operations
2022-02-18 01:31:45 +03:00
Vitaliy Filippov
117d6f0612
Release 0.6.14
...
- Fix IPv6 address parsing
- Fix "cannot read bytes of undefined" in the monitor on a fresh DB
- Fix possible hangs of read requests on OSD restarts without immediate_commit=all mode
- Fix OSDs skipping misplaced recovery in some cases
- Fix OSDs possibly dying with "map::at" errors when other OSDs are stopped
- Fix division by zero in ls if all pool OSDs are down
2022-02-17 14:43:44 +03:00
Vitaliy Filippov
7d79c58095
Use the larger sockaddr_storage structure
2022-02-12 11:22:56 +03:00
Vitaliy Filippov
46d2bc100f
Add some tolerance to stat calculation so it does not fail on a fresh DB
2022-02-11 16:37:16 +03:00
Vitaliy Filippov
732e2804e9
Fix operation dependency counter underflow for reads without immediate_commit=all mode
2022-02-11 10:54:11 +03:00
Vitaliy Filippov
abaec2008c
Fix OSDs missing misplaced recovery
2022-02-11 01:00:24 +03:00
Vitaliy Filippov
8129d238a4
Different fio versions have different types for xfer_buflen, but Vitastor anyway does not support 128-bit offsets
2022-02-10 01:21:04 +03:00
Vitaliy Filippov
61ebed144a
Fix OSDs possibly dying with "map::at" errors when other OSDs are stopped
2022-02-09 10:35:29 +03:00
Vitaliy Filippov
9d3ba113aa
Extract bind socket code into a utility function
2022-02-06 00:39:52 +03:00
Vitaliy Filippov
9788045dc9
Fix division by zero in ls if all pool OSDs are down
2022-02-05 17:03:37 +03:00
Vitaliy Filippov
d6b0d29af6
4k MEM_ALIGNMENT
2022-02-05 17:03:37 +03:00
Vitaliy Filippov
36f352f06f
Release 0.6.13
...
- Fix client hangs possible on OSD restarts (bug affected versions from 0.5.11)
- Fix "Assertion `sqe != NULL' failed" io_uring-related crashes possible
on some kernels (0.6.11 increased probability of this bug)
- Fix timeout=0 in NBD proxy
- Fix build under centos 7
2022-02-03 01:50:30 +03:00
Vitaliy Filippov
318cc463c2
Fix warnings
2022-02-03 01:50:30 +03:00
Vitaliy Filippov
145e5cfb86
MCL_ONFAULT is not available under centos 7
2022-02-03 01:42:19 +03:00
Vitaliy Filippov
73ae578981
Add osd_memlock option
2022-02-02 01:40:22 +03:00
Vitaliy Filippov
20ee4ed758
Update some parameter docs
2022-02-01 22:46:13 +03:00
Vitaliy Filippov
63de79d1b2
Change > to | to preserve newlines
2022-02-01 22:45:12 +03:00
Vitaliy Filippov
f712967079
And one more sqe starvation fix
2022-02-01 02:50:16 +03:00
Vitaliy Filippov
df0cd85352
Fix another part of the "async sqe clear" bug (followup to d9857a5340)
2022-02-01 01:14:56 +03:00
Vitaliy Filippov
ebaf4d7a72
Fix compatibility with fio 3.28+
2022-01-31 23:39:14 +03:00
Vitaliy Filippov
d4bc10542c
Fix compatibility with liburing >= 2.1 where it only has __pad2[2]
2022-01-31 22:49:40 +03:00
Vitaliy Filippov
140309620a
Free recv_buf in nbd_proxy
2022-01-31 20:37:58 +03:00
Vitaliy Filippov
0a610ee943
Destroy the client after completing CLI command
2022-01-31 18:27:04 +03:00
Vitaliy Filippov
f3ce166064
Do not print nan% in df when a pool has no available OSDs
2022-01-31 18:23:57 +03:00
Vitaliy Filippov
717d303370
Handle get_sqe failures, don't die with "will fall out of sync" in epoll_manager
...
Problem is that in recent kernels io_uring may return completions BEFORE
clearing the submission queue. I.e. for example its capacity is 512, there
were 512 requests, one of them completed, so when the request completion is
processed the queue "should have" 1 free slot. But sometimes it doesn't because
io_uring doesn't always clear the submission queue before sending CQE :-/
2022-01-31 02:52:20 +03:00
Vitaliy Filippov
d9857a5340
Check for SQEs, not for completions
...
Should finally fix Assertion `sqe != NULL' failed introduced after journaling
refactor in 0.6.11...
2022-01-31 02:19:10 +03:00
Vitaliy Filippov
eb5d9153e8
Fix build under centos 7
2022-01-30 20:29:44 +03:00
Vitaliy Filippov
ae6d1ed1d5
Remove completed items
2022-01-30 20:20:06 +03:00