Vitaliy Filippov
ab822d3050
Support consistent listings in client (rm-data, merge and etc)
2025-01-02 18:07:12 +03:00
Vitaliy Filippov
d5366a0767
Support listings from primary OSDs (for consistent deletions)
2025-01-02 11:07:24 +03:00
Vitaliy Filippov
40b8a8b0da
Add wait_up_timeout support to cluster_client and use it in vitastor-cli rm-data & merge
2025-01-01 17:57:58 +03:00
Vitaliy Filippov
5c5119aba4
Pass min_offset/max_offset to list_inode()
2025-01-01 15:40:12 +03:00
Vitaliy Filippov
4edda88903
Wait for OSDs to either connect or stop infinitely during listing, not for peer_connect_timeout
2025-01-01 15:29:42 +03:00
Vitaliy Filippov
80dda3ca94
Remove separate list_inode_next()
2025-01-01 14:19:18 +03:00
Vitaliy Filippov
c8decb32e8
Rename to client_wait_up_timeout
2025-01-01 11:26:57 +03:00
Vitaliy Filippov
4995592e61
Retry listings on broken OSD connections
2025-01-01 11:14:36 +03:00
Vitaliy Filippov
d9f9b0bca5
Start listings consistently with the current PG state, add wait_up_timeout
...
This still doesn't make listings 100% consistent yet; for 100% consistent
listings we have to receive listings only from the primary OSD, not from all
peer OSDs, but this issue will be fixed separately.
2025-01-01 10:58:22 +03:00
Vitaliy Filippov
d0396267d0
Clear retry_timeout when the client is destroyed
2025-01-01 10:58:22 +03:00
Vitaliy Filippov
b46d5db115
Support JSON output in vitastor-disk prepare and purge
2024-12-29 15:19:44 +03:00
Vitaliy Filippov
ecd92655fe
Fix rm --exact / --matching not removing one uppermost image in each chain
2024-12-28 21:53:49 +03:00
Vitaliy Filippov
383712148b
Fix rm --exact / --matching not being invoked at all O_o
2024-12-28 21:47:00 +03:00
Vitaliy Filippov
561b36a4c1
Use revision from txn response header, not from put subresponse
2024-12-28 21:01:15 +03:00
Vitaliy Filippov
a31592d131
Print sizes in "Auto-selecting" as "4K", not "4 K"
2024-12-28 19:15:23 +03:00
Vitaliy Filippov
de6b345473
Fix create-snap taking parent_pool from incorrect key parent_pool_id
2024-12-28 18:53:29 +03:00
Vitaliy Filippov
8bf52d6e96
Fix inode parent_id loop check
2024-12-28 18:40:17 +03:00
Vitaliy Filippov
5623dca02c
Fix vitastor client passing incorrect mod_revision for snapshotted images
...
This was leading to reads only working for the image itself and for its latest snapshot
2024-12-28 16:01:35 +03:00
Vitaliy Filippov
ba9aabf187
Return listing errors from list_inode_start(), abort merging and fail deletion on unsuccessfull listings
2024-12-27 18:31:21 +03:00
Vitaliy Filippov
5c890e4a12
Fix rm-data hanging when some OSDs are inactive, add a test for it
...
There's also another case which also needs to be fixed - we shouldn't retry
deletions for indefinite time if an OSD is stopped during deletion
2024-12-27 16:29:33 +03:00
Vitaliy Filippov
0b0c2afbce
Implement "deleted" flag
2024-12-27 01:18:55 +03:00
Vitaliy Filippov
651c055bd9
Show backfillfull pools in vitastor-cli status
2024-12-26 12:17:47 +03:00
Vitaliy Filippov
42eebfc1bd
Fix OSDs still crashing when the cluster is full with EC
...
ENOSPC handling was introduced in 1.6.0 but it was not complete; now it is
P.S: See also client_retry_enospc (true by default)
2024-12-26 01:56:33 +03:00
Vitaliy Filippov
cef98052f5
Improve logging of subop failures
2024-12-26 01:54:40 +03:00
Vitaliy Filippov
7fbb04fdfa
Release 1.10.0
...
New features:
- Implement basic VitastorFS support in [CSI](https://vitastor.io/docs/installation/kubernetes.html )
- Implement [NFS RDMA](https://vitastor.io/docs/usage/nfs.html#rdma ) support
- Pause pool rebalance when monitor detects that it can lead to any OSD becoming full ([osd_backfillfull_ratio](https://vitastor.io/docs/config/monitor.html#osd_backfillfull_ratio ))
- Auto-select correct [RDMA device and GID](https://vitastor.io/docs/config/network.html#rdma_device ) based on osd_network and RoCEv2 priority
- Report slow ops in OSD stats in etcd and show them in vitastor-cli status
Bug fixes:
- Fix possibly incorrect linked list deserialization in NFS
- Fix possible crash in vitastor-nfs --block READDIR operation
- Map netlink after forking to show correct PID in vitastor-nbd ls
- Simplify and fix create-pool OSD count checks for the case of hosts split into sub-nodes
- Make monitor print "Waiting to become master" just once, not every 5s
- Take out_size from oimg if not specified in vitastor-cli dd
- Do not report OSDs with empty statistics as "full" in status
- Trigger double autosync when switching PG state to prevent leaving garbage in non-immediate_commit clusters
- Fix a lack of connection timeout for etcd websockets in OSD leading to slower etcd failover (~70s instead of ~10s)
- Fix a rare OSD crash during client disconnect
- Fix PGs sometimes sticking until OSD restart in the "has_unclean" state with EC pools
- Fix metadata partition zeroing in vitastor-disk prepare
- Add patches for qemu 9.1 and pve-qemu 9.0 and 9.1
- Fix libvirt 8 patch
2024-12-19 15:49:19 +03:00
Vitaliy Filippov
63b85b6bfb
Fix clang warnings/errors
2024-12-19 15:30:31 +03:00
Vitaliy Filippov
8a86c123c3
Allow to auto-select and print the port
2024-12-14 16:55:13 +03:00
Vitaliy Filippov
b856524e0c
Workaround for Linux bug: return post_op_attr for NFS-RDMA READ3
...
Linux NFS RDMA transport has a stupid bug - when the reply doesn't contain
post_op_attr, the data gets offsetted by 84 bytes (size of attributes) and
first 84 bytes are filled with probably random data.
2024-12-11 21:09:36 +03:00
Vitaliy Filippov
ae3ca7451f
Use per-connection RDMA device contexts
2024-12-11 21:09:36 +03:00
Vitaliy Filippov
1dbbb0c3f8
Implement NFS RDMA support
2024-12-11 21:09:36 +03:00
Vitaliy Filippov
64db31ec10
Fix slow op warning format
2024-12-11 21:09:36 +03:00
Vitaliy Filippov
76470686b3
Fix possibly incorrect linked list deserialization in NFS
2024-12-08 02:54:13 +03:00
Vitaliy Filippov
652ca631bb
Fix possible crash in nfs_block readdir
2024-12-01 18:04:49 +03:00
Vitaliy Filippov
2105f4b654
Add lost netlink daemonize
2024-11-27 17:13:30 +03:00
Vitaliy Filippov
8cfe705d7a
Map netlink after forking to show correct PID in vitastor-nbd ls
2024-11-23 00:46:44 +03:00
Vitaliy Filippov
66c9271cbd
Radically simplify create-pool pg_size check
2024-11-22 01:44:14 +03:00
Vitaliy Filippov
7b37ba921d
Pause pool rebalance when monitor detects that it can lead to any OSD becoming full
2024-11-22 01:01:07 +03:00
Vitaliy Filippov
262c581400
Fix create-pool for the case of hosts split into sub-nodes
2024-11-22 01:01:07 +03:00
Vitaliy Filippov
1f6a061283
Move ibv_query_gid under #ifdef to only build it with libibverbs 32+
2024-11-21 23:47:57 +03:00
Vitaliy Filippov
c7a4ce7341
Take out_size from dd oimg if not specified
2024-11-19 02:13:34 +03:00
Vitaliy Filippov
ddea31d86d
Auto-select first RDMA device only if RoCE is not found, add rocev2->rocev1->ib priority
2024-11-19 01:54:00 +03:00
Vitaliy Filippov
7e076c7049
Do not report OSDs with empty statistics as full
2024-11-16 23:36:16 +03:00
Vitaliy Filippov
7de38250ad
Auto-select RDMA device based on osd_network
2024-11-16 18:38:57 +03:00
Vitaliy Filippov
9c59d30e83
Report slow ops in OSD stats in etcd and show them in vitastor-cli status
2024-11-16 15:11:16 +03:00
Vitaliy Filippov
8202ee9d74
Trigger double autosync when switching PG state to prevent leaving garbage in non-immediate_commit clusters
2024-11-15 01:26:36 +03:00
Vitaliy Filippov
5864bd067c
Add missing connection timeout for etcd websockets in OSD
2024-11-12 02:28:07 +03:00
Vitaliy Filippov
c312557ace
Do not execute remaining operations if the client is stopped during read
2024-11-10 16:44:13 +03:00
Vitaliy Filippov
5ce20116d8
Postpone trigger_nearest to prevent timer callbacks called from setTimer/clearTimer
2024-11-10 15:51:16 +03:00
Vitaliy Filippov
141cec2383
Add missing refcounting for flush_batch errors
2024-11-09 00:46:38 +03:00
Vitaliy Filippov
1ce4b1b417
Fix stop condition in osd_flush
...
Could probably lead to PGs hung in peering states on OSD restart in EC pools,
fixable by primary OSD restart
2024-11-08 00:30:40 +03:00