Skip to content

Releases: vitalif/vitastor

Release 1.4.5

17 Feb 22:57
Compare
Choose a tag to compare
  • Fix a write stall caused by incorrect journal trimming introduced in 1.4.4 :)
  • Fix PGs sometimes hanging in "starting" state on mass OSD restarts
  • Fix a rare crash with "map::at" during OSD pings
  • Use new defaults for non-capacitor (desktop) SSDs - improves T1Q256 random write from ~6k iops to ~45k iops
  • Make journal_trim_interval configurable

Release 1.4.4

17 Feb 22:57
Compare
Choose a tag to compare

A couple of fixes for EC pools

  • Fix a segfault possible on partial EC overwrite in 1234 -> 5030 rebalance scenario
  • Fix two problems leading to EC pools stalling on rebalance & parallel sudden stops
    of OSDs, for example during a sudden poweroff of a host:
    • Recovery auto-tuning (1.4.0 feature) could apply too large delays and stall
      the EC journal - fixed by limiting delays with a new recovery_tune_sleep_cutoff_us
      parameter (10 seconds by default) and applying recovery pauses before write
      operations, not after them, to not occupy space in the journal for long time
    • Dynamic journal space reservation (1.3.0 feature) wasn't accounting new writes
      when checking the limit so OSDs could still fill the journal fully and stall -
      fixed by including new writes into the limit
  • Print etcd dbSize instead of dbSizeInUse in status

Release 1.4.3

08 Feb 21:56
Compare
Choose a tag to compare

Hotfix for hotfix O:-)

  • "Write stall fix" was incomplete and EC write stalls could continue even on 1.4.2. Now they're finally fixed O:-)
  • Make monitor ignore statistics of stopped OSDs. Previously if you stopped all OSDs the last total I/O numbers would remain the same indefinitely

Release 1.4.2

04 Feb 10:18
Compare
Choose a tag to compare
  • Log to systemd by default
  • Fix excessive autosyncs after every operation with disabled immediate_commit (introduced in 1.1.0)
  • Fix a possible write stall with EC due to the lack of OSD wakeup after stabilizing previous writes
  • Change sync operation semantics as a final fix to possible write stalls with EC and disabled immediate_commit
  • Sync after deleting data in CLI rm / rm-data if immediate_commit is disabled
  • Fix OSDs ignoring syncs & autosyncs for delete operations
  • Fix OSD space reporting sometimes adding garbage zeros for deleted inodes (causing extra pool/stats etcd keys for deleted pools)
  • Speed up monitor failover - change default etcd_mon_ttl from 30 to 5 seconds
  • Speed up operation retries - change default up_wait_retry_interval to 50 ms
  • Add patch for libvirt 9.10

Release 1.2.0

04 Nov 23:42
Compare
Choose a tag to compare

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

Release 1.1.0

27 Oct 21:50
Compare
Choose a tag to compare

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