Latest Posts

Vitastor 3.0.2 released

  • Antietcd is now officially safe to use: the release includes a fixed version of antietcd which passes Jepsen transaction serializability tests.
  • Fix a huge checksum bug in the old store: incorrect checksums for small initial writes. The bug affected writes of exactly csum_block_size (4k by default) into new (unallocated) objects and generated invalid checksums in the store for the written 4k block. Moreover, generation of these invalid checksums was very slow because it was calculating CRC32 for 4 GB of zeroes. If the block wasn’t then overwritten as a part of a larger write request it became unreadable even though the stored data was correct. The bug affected all versions since 1.0.0, or since 2.3.0 because vitastor-disk didn’t allow to enable checksums prior to 2.3.0 because of another bug. O:-)
  • Prevent OSD disconnections due to long blocking of event-loop caused by PG resharding (moving objects between old and new PGs in memory) when changing pool PG count or just on restart of an OSD with a large database (for example, with a filled 8 TB SSD). The issue should now be fixed because OSD now performs resharding in chunks with pauses between chunks.
  • Prevent pools stuck in paused state on an aborted PG count change.
  • Fix a possible OSD crash with “division by zero” when trying to handle an operation before pool PG count is applied to the in-memory store.

2026-01-25 Continue reading →

Vitastor 3.0.1 released

Important fixes

  • Disable RWF_ATOMIC by default because Linux incorrectly requires all atomic writes to be power-of-2-sized and length-aligned. Details: use_atomic_flag
  • Fix cross-pool snapshots not working at all - always reading old data after taking the snapshot
  • Fix level_placement (broken in 2.2.0)
  • Fix CAS write return values in the client library (broken in 2.4.4, also breaking unaligned writes in VitastorFS)
  • Fix VitastorFS possibly losing some of intersecting parallel unaligned writes
  • Prevent possible reads of the old data during unfinished intent writes in the new store
  • Tests added for all of above problems to prevent future regressions

2025-12-22 Continue reading →

Vitastor 3.0.0 released

A single new feature: the new log-structured metadata store implementation, described in the presentation from Moscow Highload’2025 (check it out here).

It’s now the default store for new OSDs. The support for the old store is also left in place, you can still choose it for new OSDs with vitastor-disk prepare --meta_format 2.

OSDs from previous versions with the old store format will also continue to operate just like before.

Some documentation: atomic_write_size, meta_format.

2025-12-06 Continue reading →

Vitastor 2.4.4 released

  • Implement vitastor-kv rescue command which dumps all readable blocks from the database regardless of the tree structure and allows to recover a corrupted database.
  • Simplify primary OSD selection - use just PG number instead of the hash. This allows to distribute primary OSDs more evenly and reach better read speeds.
  • Fix vitastor-kv-stress hang on parallel list & reopen.
  • Fix CAS writes without immediate_commit. Fix is sufficient for vitastor-kv to operate correctly in non-immediate_commit pools.
  • Fix NFS ACCESS calls for broken inodes (allow root access to them).
  • Fix broken vitastor-kv-stress --runtime parameter.
  • Fix bad vitastor-kv dump output buffering leading to incorrect JSON in dumps.
  • Fix writing garbage from uninitialized memory to the empty space in VitastorKV DB.
  • Refactor some code in preparation to the release of the new log-structured metadata store.
  • Replace assert(done != expected) error message, probably caused by kernel issues with zero-copy TCP send, with a more concise error description.

2025-12-01 Continue reading →

Vitastor 2.4.3 released

  • Daemonize before forking in NFS proxy to fix OSD RDMA support (#107)
  • Fix possible PG_INCOMPLETE on node outage when allow_net_split is false
  • Fix build under Ubuntu 25.10
  • Fix journal_no_same_sector_overwrites mode after optimizing WA (#109)

2025-11-09 Continue reading →

Vitastor 2.4.2 released

  • Fix make-etcd broken after adding ipv6 support in 2.4.1 :)
  • Do not mark “inverse child” as deleted during rename-delete
  • Support QEMU 10.1

2025-11-04 Continue reading →

Vitastor 2.4.1 released

  • Optimize WA - reduce it from 4-5 to 3.x by batching journal writes
  • Fix ls-pool showing wrong used % when osds are reweighted (#105)
  • Fix vitastor-cli rm sometimes hanging when PGs are down (#99)
  • Fix vitastor-cli ls displaying raw used space for all inodes when -p is specified (#101)
  • Fix “Cannot set property of undefined” in monitor when deleting pool with live inode op stats (#103)
  • Revert vitastor-kv change from 2.2.0 leading to crashes in vitastor-kv-stress (#100)
  • Add pg_size change check for XOR pools
  • Fix root access to VitastorFS files
  • Add IPv6 support to make-etcd
  • Fix IPv6 etcd address support in OSD & client library

2025-10-29 Continue reading →

Vitastor 2.4.0 released

New features

  • Support UBLK in CSI and make it the default
  • Add image tree output: vitastor-cli ls --tree
  • Add vitastor-disk prepare --dry-run option

2025-09-24 Continue reading →

Vitastor 2.3.0 released

ublk, Veeam and checksum enablement fix.

2025-08-25 Continue reading →

Older Posts →