Posts up to 2023-11-05

Vitastor 1.2.0 released

Snapshot and volume expansion support in CSI and an important bugfix for EC n+k with k>=2.

2023-11-05 Continue reading →

Vitastor 1.1.0 released

New features

  • Implement client writeback cache
  • Add the third I/O mode: O_DIRECT|O_SYNC (good for Optane)
  • Reduce load on etcd by splitting OSD lease and statistics reporting intervals: etcd_stats_interval (default 30 sec)
  • Make MON automatically filter OSDs by layout (block_size/immediate_commit/bitmap_granularity) to prevent “refusing to start PGs of this pool” errors on misconfiguration
  • Support running fio benchmarks on systems without io_uring
  • Make QEMU driver compatible with QEMU 8.1
  • Document usage of vhost-user-blk

2023-10-27 Continue reading →

How Vitastor handles image snapshots

In fact, there are only 3 ways to implement snapshots: “redo”, “undo”, and “cow”. Also, proper snapshots should always be atomic. What does this all mean?

2023-08-30 Continue reading →

Vitastor 0.9.6 released

  • Fix vitastor-disk partition zeroing (sometimes it was writing garbage instead of zeroes)
  • Fix incorrect EC space statistics in vitastor-cli status
  • Several bug fixes for NFS:
    • Add . and … in NFS directory listings
    • Return FILE_SYNC from NFS writes if immediate_commit is enabled
    • Return the same “verifier” in NFS COMMIT as in NFS WRITE
    • Make parallel NFS extending writes work correctly, without conflicts
    • Handle parallel NFS extending writes without imposing extra load on etcd
  • Support UTF-8 in vitastor-cli table output
  • Also allow “0” and “no” as false for inmemory_metadata and inmemory_journal
  • Use HDD defaults for HDD-only in automatic vitastor-disk prepare mode

2023-07-29 Continue reading →

Vitastor 1.0.0 released

  • Data and metadata checksums!
    • Metadata checksums are always used with new disk format
    • Data checksums can be turned on with --data_csum_type crc32c for new OSDs
    • Checksum block size can be configured
    • inmemory_metadata now also affects keeping checksums in memory
  • Linux page cache I/O caching support which can be enabled separately for data, metadata (including checksums) and journal (O_SYNC instead of O_DIRECT)
  • Details here
  • Backwards compatibility is preserved, you can use new OSDs with old disks

Release also includes bug fixes from 0.9.6.

0.9.6 is moved to “-oldstable” repositories and will be available for some additional time.

2023-07-29 Continue reading →

Vitastor 0.9.5 released

A hotfix to 0.9.4 containing only one bugfix: 100% CPU usage in the new QEMU driver caused by the lack of eventfd reset on io_uring event handling :)

2023-07-20 Continue reading →

Vitastor 0.9.4 released

  • Improve QEMU driver performance by integrating io_uring in it (up to 1.5x total iops improvement)
  • Fix QEMU driver deadlocks which started to reproduce in qemu-img after iothread fixes
  • Fix vitastor-cli status reporting more etcds than actually exists (fix etcd address duplication in config on reload)
  • Fix vitastor-cli ls crashing on inodes in non-existing pools
  • Delete old garbage /pool/stats/ keys for non-existing (deleted) pools
  • Reduce memory usage of etcds initialized by make-etcd script
  • Fix OSDs almost always crashing on etcd restart due to “revisions were compacted” (support reloading state from etcd)
  • Fix a crash and a stall possible mostly in HDD setups with small journal and big (512k, 900k) random writes
  • Add notes about HDDs to documentation. You are officially allowed to use HDD-only Vitastor with HGST/Toshiba/EXOS :)

2023-07-18 Continue reading →

Vitastor 0.9.3 released

  • Add patch for libvirt 9.0
  • Add support for Proxmox VE 8.0
  • Fix compatibility of the QEMU driver with iothread (QEMU rebuilds are coming)
  • Fix vitastor-cli rm-data/rm/merge hanging when some OSDs are down. Allow deletions in unclean cluster at the cost of some data possibly “reappearing” when those OSDs start back. In that case you can just repeat the deletion request using rm-data.
  • A bunch of bug fixes for snapshots:
    • Fix snapshot reads often not working at all with snapshot chain size > 2
    • Fix optimized snapshot data merge (children to parent)
    • Fix updating of image name index key during optimized merge
    • Fix auto-selection preventing the use of optimized merge with only 1 snapshot
    • Fix incorrect CAS retries during snapshot merge
    • Fix snapshot merge progress reporting
  • Fix primary_read bitmap buffers use-after-free which could lead to incorrect allocation map reads
  • Remove /usr/local/bin path from make-etcd
  • Some documentation fixes

2023-07-01 Continue reading →

Vitastor 0.9.2 released

  • Measure and report scrub I/O statistics in vitastor-cli status
  • Make aggregated statistics in vitastor-cli status much smoother (first derive, then sum instead of first summing and then deriving)
  • Fix an old rare bug leading to journal corruption (try to use scrub if you think you’re affected…)
  • Do not start EC PGs without at least OSDs in each old set (prevents spurious read errors with EC during reconnections/restarts)
  • Fix failed assert(!scrub_list_op) on OSD restart with pending scrubs
  • Fix future planned scrubs not starting because of incorrect time comparison
  • Build packages for Debian 12 (Bookworm)

2023-06-18 Continue reading →

Vitastor 0.9.1 released

  • Fix “Client XX command out of sync” messages sometimes happening on OSD reconnections
  • Fix a bug where EC reads parallel with writes to the same object failed with -ERANGE error
  • Slightly reduce the amount of metadata writes during journal flushing
  • Correctly unmap NBD volumes when Proxmox forces map_volume use (with SWTPM and maybe some other cases)

2023-06-10 Continue reading →

← Newer Posts Older Posts →