• v1.2.0 5524dbdab7

    Release 1.2.0 Stable

    vitalif released this 2023-11-05 01:48:57 +03:00 | 120 commits to master since this release

    New features:

    • Implement CSI volume expansion
    • Implement CSI volume snapshots
    • CSI driver now requires Kubernetes >= 1.20

    Bug fixes:

    • Important bug fix for EC: fix EC n+k, k>=2 read recovery in ISA-L version returning incorrect data when reading at least the second chunk out of multiple missing chunks without reading the first one. All users of EC n+k, k>=2 should upgrade as soon as possible, and upgrade should be conducted with downtime: first stop all clients (VMs/containers), then all OSDs, then upgrade and restart everything.
    • Fix unstable statistics aggregation in monitor (affecting vitastor-cli status and df)
    • Make udev not wait for OSDs to start during boot
    • Do not report negative numbers of offline PGs in vitastor-cli status when changing PG count
    • Report both old and new PG counts in vitastor-cli df when changing it
    • Fix OSDs sometimes not starting with "The code only supports journal versions 1 and 2, but it is 2 on disk" error after upgrading from pre-1.0 versions and letting OSDs run for some time
    • Fix monitors sometimes returning old PG count back after OSD configuration changes
    • Make monitor PG changes more stable and timeout errors less probable
  • v1.1.0 8222e3c77d

    Release 1.1.0 Stable

    vitalif released this 2023-10-28 00:33:06 +03:00 | 147 commits to master since this release

    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

    Bug fixes:

    • Fix resizing disks in QEMU driver (for example, in Proxmox)
    • Fix "unexpected result" in Proxmox driver by making CLI flush output on exit
    • Remove unneeded block_size mismatch warnings on pools without matching PGs
    • Fix possible segfault in vitastor-cli ls -l (usually with deleted pools)
    • Fix QEMU driver compatibility with systems without io_uring
    • Fix monitor eating 100% CPU when etcd is down (caused by infinite retries)
    • Fix potential incorrect write processing with snapshots (not caught in tests but could probably lead to client hangs)
    • Fix buffer insertion in cluster_client (not caught in tests but could probably lead to incorrect writes in rare cases)
    • Fix rare OSD crash during sync operation processing
    • Fix a reenterability issue in cluster_client not reproducible in QEMU/fio, but reproducible with the currently developed K/V database implementation
    • Fix deletion of the first modified object - OSDs could crash if you modified the same object a lot of times, then deleted it, and then modified it again
    • Fix the fio_sec_osd test tool
  • v1.0.0 6acf562e01

    Release 1.0.0 Stable

    vitalif released this 2023-07-29 18:57:19 +03:00 | 190 commits to master since this release

    New features:

    • 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.

  • v0.9.6 e651c93a90

    Release 0.9.6 Stable

    vitalif released this 2023-07-29 10:54:00 +03:00 | 232 commits to master since this release

    • 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
  • v0.9.5 10a5fd6abb

    Release 0.9.5 Stable

    vitalif released this 2023-07-21 00:04:41 +03:00 | 244 commits to master since this release

    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 :)

  • v0.9.4 1c10430ae1

    Release 0.9.4 Stable

    vitalif released this 2023-07-19 02:50:30 +03:00 | 247 commits to master since this release

    • 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 :)
  • v0.9.3 a612cdca47

    Release 0.9.3 Stable

    vitalif released this 2023-07-01 00:25:58 +03:00 | 274 commits to master since this release

    • 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
  • v0.9.2 926be372fd

    Release 0.9.2 Stable

    vitalif released this 2023-06-18 19:44:33 +03:00 | 299 commits to master since this release

    • 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)
  • v0.9.1 bdd48e4cf1

    Release 0.9.1 Stable

    vitalif released this 2023-06-10 11:42:49 +03:00 | 310 commits to master since this release

    • 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)
  • v0.9.0 3b4cf29e65

    Release 0.9.0 Stable

    vitalif released this 2023-05-21 15:07:14 +03:00 | 318 commits to master since this release

    New features:

    • Scrubbing! Check documentation: auto_scrub
    • Document online-updatable configuration parameters

    Bug fixes:

    • Fix NaN during PG optimisation if there are nonexisting OSDs in node_placement
    • Fix monitor crash on pool deletion
    • Clear journal_device and meta_device before initialising the next OSD in automatic mode
    • Sync unsynced deletes before overwriting them with a lower version
      (reproducted mostly/only after scrubbing)