Commit Graph
2645 Commits
Author SHA1 Message Date
Vitaliy Filippov 8124ee9eec WIP vitastor-cli create-user 2026-03-20 21:00:32 +03:00
Vitaliy Filippov ccbde3ff91 Duplicate all data in /index/image/ and support reading it from there 2026-03-20 21:00:32 +03:00
Vitaliy Filippov 3a0455877a Add security parameter documentation 2026-03-20 21:00:32 +03:00
Vitaliy Filippov 6c2c7f9d0f Support inline (string PEM) certificates and pkeys 2026-03-20 21:00:32 +03:00
Vitaliy Filippov 11618da189 Show encryption keys (only IDs) in the listing 2026-03-20 21:00:32 +03:00
Vitaliy Filippov 9d2a859760 Support storing image encryption keys in Vault 2026-03-20 21:00:32 +03:00
Vitaliy Filippov 76042d9ea8 Prefer local etcd addresses and correctly cycle over them even when they need resolving
Seems slightly overcomplicated...
2026-03-20 21:00:32 +03:00
Vitaliy Filippov 96473f15f9 Support DNS resolving via libc-ares 2026-03-20 21:00:32 +03:00
Vitaliy Filippov 7207d0fa75 Batch handle_immediate_ops more 2026-03-20 21:00:32 +03:00
Vitaliy Filippov 0fb58e3c43 Add vitastor-cli create & modify --enc-key parameter 2026-03-20 21:00:32 +03:00
Vitaliy Filippov de7edfd31d Support reading from snapshots encrypted with different keys 2026-03-20 21:00:32 +03:00
Vitaliy Filippov e6c3f4c6f4 Support decryption with multiple keys 2026-03-20 21:00:32 +03:00
Vitaliy Filippov b4d172be35 Allow to return chain_info in response to reads 2026-03-20 21:00:32 +03:00
Vitaliy Filippov a2debfca68 Add basic AES-XTS client-side encryption support 2026-03-20 21:00:32 +03:00
Vitaliy Filippov 4c3c43f8ac Rework msgr send/receive to allow encryption support 2026-03-20 21:00:32 +03:00
Vitaliy Filippov 6638889126 Move fromhexstr() to str_util 2026-03-20 20:58:58 +03:00
Vitaliy Filippov 7fb5426ae9 Add openapi description 2026-03-20 20:58:58 +03:00
Vitaliy Filippov b4af7409af Slightly fix API return and input types 2026-03-20 20:58:58 +03:00
Vitaliy Filippov 645b1f3081 Implement vitastor-cli serve command to serve simple HTTP API 2026-03-20 20:58:58 +03:00
Vitaliy Filippov 9a21a0ca65 Implement HTTP server support O_o 2026-03-20 20:58:58 +03:00
Vitaliy Filippov 28e4610d25 Rename http_response_t to http_message_t 2026-03-20 20:58:58 +03:00
Vitaliy Filippov 2ddefa539f Extract common HTTP context 2026-03-20 20:58:57 +03:00
Vitaliy Filippov 3aa307f034 Support xxhash 32-bit checksums (data_csum_type=xxh3_32) 2026-03-20 20:58:57 +03:00
Vitaliy Filippov 3ed7a0bc5e Detect block checksums using csum_block_size, not data_csum_type 2026-03-20 20:58:57 +03:00
Vitaliy Filippov ab77f487e3 Add client certificate support 2026-03-20 20:58:57 +03:00
Vitaliy Filippov ba9be46acd Do not re-initialize TLS context every connection 2026-03-20 20:58:57 +03:00
Vitaliy Filippov 04c7d61ee9 Add https support to antietcd 2026-03-20 20:58:57 +03:00
Vitaliy Filippov d0ae63eb50 Implement etcd SSL support via OpenSSL
Maybe I should remove all of this and use libwebsockets :)
2026-03-20 20:58:57 +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
Vitaliy Filippov fdea595913 Use vitastor-cli in the Cinder driver for modifications instead of direct etcd interaction 2026-03-15 01:44:30 +03:00
Vitaliy Filippov ef4c91ecc8 Fix mon_https_ca parsing 2026-03-15 01:01:41 +03:00
Vitaliy Filippov 5192c6cf50 Fix Docker install.sh, add instructions for Podman 2026-03-13 20:08:18 +03:00
Vitaliy Filippov cb639a130d Release 3.0.5
A single urgent fix for the new store: metadata was written incorrectly when
filled metadata area exceeded 4 GB due to a simple & stupid 32-bit integer overflow.
This was leading to OSDs corrupting metadata and being unable to start on the next
run.

The bug affected only the new store (meta_format=3) and OSDs with metadata area size
larger than 4 GB. You can check your OSD metadata area size by checking `data_offset`
in `vitastor-disk read-sb /dev/vitastor/osdXX-data` for single-disk OSDs or
`blockdev --getsize64 /dev/vitastor/osdXX-meta` for hybrid OSDs.

If you're affected, it's highly recommended to:
- Install updated packages without restarting OSDs
- Restart OSDs **one by one**
- If a restart of an OSD triggers "has_degraded" rebalance - wait for it to finish
  before restarting another OSD
- If an OSD fails to start with "double-claimed" errors in the log - purge and recreate it,
  and again wait for "has_degraded" rebalance to finish before proceeding to the next OSD
v3.0.5
2026-03-07 13:54:44 +03:00
Vitaliy Filippov 892e3a8b6d Add Ubuntu 26.04 build 2026-03-07 13:54:44 +03:00
Vitaliy Filippov 0bd9c26620 Make block_sizes uint64_t to prevent other integer overflow errors in the future 2026-03-07 12:02:57 +03:00
Vitaliy Filippov ae2b1f7802 Some useless code changes for beauty 2026-03-07 00:15:16 +03:00
Vitaliy Filippov 883b2e45da Fix uint32 overflow in the new store :-X 2026-03-06 17:21:22 +03:00
Vitaliy Filippov 09df74cfac Release 3.0.4
New store bug fixes:

- Fix very slow OSD startup (hours) possible in unlucky cases
- Fix incorrect garbage entry validation on start in some cases, preventing OSD startup
- Fix small_write_throttling not functioning and either hanging or crashing OSDs
- Fix "different fact_versions returned from subops" error possible with EC in some cases
- Add a recovery option for the new store: skip_corrupted_meta_entries
- Disable intent writes (even 4k) for hybrid OSDs by default for better write buffering

Other changes:

- Fix chmod/chown of a new empty VitastorFS root directory not working
- Fix vitastor-dd treating all < 32k reads as always empty
- Fix vitastor-disk always setting 32k csum_block_size for HDDs when checksums are enabled
- Fix OSD missing PG state updates and PGs hanging in "starting" in rare cases
- Fix a possible OSD crash with "map::at" message in rare cases when stopping a client
- Fix a possible OSD crash on start when RDMA is available but fails to initialize
- Fix removal and overwriting of totaled objects (objects with all corrupted copies)
- Do not allow data_block_size < 8*bitmap_granularity
- Remove RDMA ODP (On-Demand Paging) support
- Update antietcd to 1.2.4
- Update Docker build to Debian Trixie
- Add packages for AlmaLinux 10
v3.0.4
2026-03-03 20:12:31 +03:00
Vitaliy Filippov 2ef3f012c9 Fix Docker builds 2026-03-03 20:09:23 +03:00
Vitaliy Filippov 7175d99c64 Add packages for Alma 10 to docs 2026-03-03 11:17:20 +03:00
Vitaliy Filippov 230a26772e Do not allow data_block_size < 8*bitmap_granularity 2026-03-03 02:09:16 +03:00
Vitaliy Filippov 637684c579 Fix chmod/chown of empty NFS root directory 2026-03-03 02:05:37 +03:00
Vitaliy Filippov c541dd422f Add skip_corrupted_meta_entries docs 2026-03-03 01:52:22 +03:00
Vitaliy Filippov 22c39561cf Add a recovery option for the new store: skip_corrupted_meta_entries 2026-03-02 02:51:09 +03:00
Vitaliy Filippov d4c67b4879 Ignore array-bounds warning in bs_heap 2026-03-02 02:49:56 +03:00
Vitaliy Filippov d1b7167861 Fix vitastor-disk always overwriting csum_block_size with 32k, add default atomic_write_size 0 for hybrid OSDs 2026-03-01 23:47:35 +00:00
Vitaliy Filippov 33b561b73a Fix throttling with the new store 2026-03-01 23:46:30 +00:00
Vitaliy Filippov a95a60c600 Add sudo -E to preserve asan suppressions 2026-03-02 01:48:50 +03:00