Commit Graph
2664 Commits
Author SHA1 Message Date
Vitaliy Filippov 2e261ac2cf Show encryption keys (only IDs) in the listing 2026-04-04 19:01:50 +03:00
Vitaliy Filippov 405a8c3f53 Support storing image encryption keys in Vault 2026-04-04 19:01:50 +03:00
Vitaliy Filippov 8d4d49dad3 Prefer local etcd addresses and correctly cycle over them even when they need resolving
Seems slightly overcomplicated...
2026-04-04 19:01:50 +03:00
Vitaliy Filippov 6a646be234 Support DNS resolving via libc-ares 2026-04-04 19:01:50 +03:00
Vitaliy Filippov bc0aa48bc7 Batch handle_immediate_ops more 2026-04-04 19:01:50 +03:00
Vitaliy Filippov df08f4e4d2 Add vitastor-cli create & modify --enc-key parameter 2026-04-04 19:01:50 +03:00
Vitaliy Filippov 2669ba96ad Support reading from snapshots encrypted with different keys 2026-04-04 19:01:50 +03:00
Vitaliy Filippov b5b3c95bfd Support decryption with multiple keys 2026-04-04 19:01:50 +03:00
Vitaliy Filippov 0d5530f89a Allow to return chain_info in response to reads 2026-04-04 19:01:49 +03:00
Vitaliy Filippov 0b32d76f75 Add basic AES-XTS client-side encryption support 2026-04-04 19:01:49 +03:00
Vitaliy Filippov 67132a29ae Rework msgr send/receive to allow encryption support 2026-04-04 19:01:49 +03:00
Vitaliy Filippov 6d22ab77ec Move fromhexstr() to str_util 2026-04-04 19:01:49 +03:00
Vitaliy Filippov b2bcf2734c Add openapi description 2026-04-04 19:01:49 +03:00
Vitaliy Filippov 04e4fcd14d Slightly fix API return and input types 2026-04-04 19:01:49 +03:00
Vitaliy Filippov 2dbfc8548a Implement vitastor-cli serve command to serve simple HTTP API 2026-04-04 19:01:49 +03:00
Vitaliy Filippov 74a826d0be Implement HTTP server support O_o 2026-04-04 19:01:49 +03:00
Vitaliy Filippov 4aa9c8bf2b Rename http_response_t to http_message_t 2026-04-04 19:01:49 +03:00
Vitaliy Filippov 5a51415d2c Extract common HTTP context 2026-04-04 19:01:49 +03:00
Vitaliy Filippov 2be8dfbb48 Support xxhash 32-bit checksums (data_csum_type=xxh3_32) 2026-04-04 19:01:49 +03:00
Vitaliy Filippov 49db218f73 Detect block checksums using csum_block_size, not data_csum_type 2026-04-04 19:01:49 +03:00
Vitaliy Filippov b04a2d62b2 Add client certificate support 2026-04-04 19:01:49 +03:00
Vitaliy Filippov dcd545a1a5 Do not re-initialize TLS context every connection 2026-04-04 19:01:49 +03:00
Vitaliy Filippov 553e153c16 Add https support to antietcd 2026-04-04 19:01:49 +03:00
Vitaliy Filippov cc420ca32d Implement etcd SSL support via OpenSSL
Maybe I should remove all of this and use libwebsockets :)
2026-04-04 19:01:49 +03:00
Vitaliy Filippov dd5941b9a4 Release 3.0.9
- Fix broken garbage collection in the new store leading to very high memory usage
- Make the new store do full garbage collection on OSD startup by default (can be turned off with a new gc_on_start parameter)
- Make startup logging with the new store more informative, allow to log amount of garbage with log_level > 1
- Fix clients reading from snapshots incorrectly on retries (for example when OSDs were restarted during read)
- Fix a possible "send-after-free" in OSD which could probably also affect snapshot reads
- Fix OSD crashing when handling a read_bitmap operation from a deleted object with the new store
v3.0.9
2026-04-04 18:38:40 +03:00
Vitaliy Filippov 4005b88865 Do not use node_type 2026-04-04 17:37:47 +03:00
Vitaliy Filippov 280b5cd675 Add gc_on_start docs 2026-04-04 17:19:32 +03:00
Vitaliy Filippov e5c505eaf4 Write 1 entry to blocks to collect garbage 2026-04-03 18:08:12 +00:00
Vitaliy Filippov c1d244d4f0 Fix init metadata entry loading logging 2026-04-03 18:08:12 +00:00
Vitaliy Filippov 9b264a212f Do full metadata GC on start (new store) 2026-04-03 18:08:12 +00:00
Vitaliy Filippov ff7f5cb4f4 Report live & garbage entry count / memory with log_level > 1 2026-04-02 23:45:13 +00:00
Vitaliy Filippov 25ecca7625 Fix use-after-free in OSD ops (ooops) 2026-04-02 13:48:17 +00:00
Vitaliy Filippov 99c4244004 Try to write into blocks with more garbage first 2026-04-02 13:48:17 +00:00
Vitaliy Filippov 9949b9fb4e Fix incorrect reads from snapshots on retries 2026-03-31 02:06:53 +03:00
Vitaliy Filippov e6881ad1d5 Fix read_bitmap from deleted objects with the new store 2026-03-31 01:59:53 +03:00
Vitaliy Filippov b30635b932 Release 3.0.8
- Surrogate increment-only peer IDs are now used instead of file descriptor numbers,
  and client cleanup sequence is reworked in another attempt to fix a possible PG hang
  in 'peering' states. The history of this bug is still unclear and it still hasn't been
  reproduced in tests, but several users have reported it since 3.0.4 (only with enabled RDMA).
- Fix a minor bug where an OSD could skip reporting misplaced PG state when moving
  an object in non-immediate_commit mode.
- Add Ubuntu 26.04 (Resolute Raccoon) support and patches for qemu 10.2 and libvirt 12.0
v3.0.8
2026-03-30 02:09:02 +03:00
Vitaliy Filippov 0c1154833c Add Ubuntu 26.04 support 2026-03-30 02:06:10 +03:00
Vitaliy Filippov c227bb05b6 Fix incorrect patch contents for qemu 10.1, add patch for qemu 10.2 2026-03-30 02:06:10 +03:00
Vitaliy Filippov dd85315f22 Update CMake supported versions 2026-03-30 02:06:10 +03:00
Vitaliy Filippov 47d2f4e0be Add patch for libvirt 12.0 2026-03-30 02:06:10 +03:00
Vitaliy Filippov 2a5028d17f Use robin_hood_map in messenger 2026-03-30 02:06:10 +03:00
Vitaliy Filippov 07915c2881 Use surrogate peer IDs instead of FDs 2026-03-30 02:06:10 +03:00
Vitaliy Filippov 79141eb383 Fix commented out //this->pg_state_dirty.insert 2026-03-28 20:08:52 +03:00
Vitaliy Filippov f7cbb6ed56 Remove FD from the event loop in destroy_client, not in stop_client 2026-03-28 14:18:20 +03:00
Vitaliy Filippov 8f8172db99 clear_immediate_ops is now done by stop_client 2026-03-26 01:08:23 +03:00
Vitaliy Filippov 94be147e80 Clear received_ops - they are already freed 2026-03-26 01:08:02 +03:00
Vitaliy Filippov 538620b400 Release 3.0.6
- Fix one more bug in old store checksums O_o - checksum verification wasn't
  working correctly on reads quickly after small initial offsetted writes
  (when a BIG_WRITE was read from the journal).
- Fix clients possibly not destroyed after being switched to RDMA. Not 100%
  verified, but in theory it could rarely lead to PGs hanging in peering/stopping
  states with RDMA enabled.
- Use vitastor-cli in the Cinder driver for modifications instead of direct etcd
  interaction.
- Fix mon_https_ca parsing.
- Fix Docker install.sh, add instructions for Podman.
v3.0.6
2026-03-22 22:49:51 +03:00
Vitaliy Filippov 4c34a47179 Fix str_replace 2026-03-19 01:19:29 +03:00
Vitaliy Filippov df16ab627a Fix another bug in old store checksums O_o
Checksum verification wasn't working correctly on reads of small initial offsetted writes
from the journal (until the write was flushed to "clean" metadata).
2026-03-17 22:26:38 +00:00
Vitaliy Filippov 44c895dc30 Fix clients possibly not destroyed after being switched to RDMA
It could in theory lead to hung operations on RDMA client disconnections.

Workflow (probable):
* OSD switches an outbound connection to PEER_RDMA and removes the FD from epoll
* But a receive request in io_uring is still active
* Receive response is never handled, refs remains > 0
* The connection is dropped, but osd_client_t is not destroyed because refs > 0
* Outbound ops are not canceled, suboperations hang, primary operations hang too
2026-03-17 01:04:17 +03:00