• v1.4.1 ba55f91409

    Release 1.4.1 Stable

    vitalif released this 2024-01-18 02:31:42 +03:00 | 181 commits to master since this release

    • Fix a monitor crash on primary OSD switching introduced in 1.4.0
    • Fix "partly outside array bounds" warnings for GCC 12 in cpp-btree
    • Fix a realloc memory leak in theory possible with too large listings (OSD_OP_LIST)
    Downloads
     
  • v1.4.0 5280d1d561

    Release 1.4.0 Stable

    vitalif released this 2024-01-12 01:28:33 +03:00 | 189 commits to master since this release

    New features:

    • Intelligent recovery/rebalance speed auto-tuning to reduce its impact on clients (see README -> Features)
    • Auto-restoration of dead VDUSE daemons in CSI plugin
    • Add vitastor-disk update-sb command
    • Update QEMU for Debian Bookworm to 8.1 and use it for CSI plugin

    Bug fixes:

    • Fix pools SOMETIMES staying inactive after stopping a node due to OSDs not reacting
      to PG state changes caused by incorrect full reload of state from etcd on reconnection
    • Make monitors retry pool configuration changes quickier which fixes them being unable
      to apply changes when an ongoing rebalance is quickly making a lot of PGs clean
    • Fix CSI plugin not accepting array of strings as etcd address in /etc/vitastor/vitastor.conf
    • Allow multiple interfaces with the same IP address, for "simple routed" full mesh network
    • Do not ignore loopback addresses for OSD network (to make ECMP setups with frr possible)
    • Fix a rare client crash during OSD reconnections
    • Only treat data partitions as existing OSDs in vitastor-disk prepare
    • Remove etcd parameter from default command examples
    • Fix reported free space sometimes changing non-immediately after deletion of data from OSDs
    • Fix a possible OSD crash on print_slow when bs_op is NULL
    • Use the same etcd_ws_keepalive_interval in mon as in OSD
    • Fix mon not using values from config when /config/global is not present
    • Remove pve-storage-portal-dns-list format for vitastor_etcd_address
    • Parse log_level in cluster_client
    • Fix vitastor-nbd image existence check not working because of non-zeroed inode_watch fields
    • Do not warn on EPIPE in client unless log_level is raised explicitly
    • Fix incorrect error in CSI when searching for the device in /sys
    • Remove 2 last prints to stdout in etcd_state_client
    • Fix a possible OSD crash when checking corrupted journal entries
    Downloads
     
  • v1.3.1 a1c7cc3d8d

    Release 1.3.1 Stable

    vitalif released this 2023-12-04 18:35:09 +03:00 | 233 commits to master since this release

    Hotfix to 1.3.0 - new "journal space reservation" had a bug which
    caused OSDs to crash with EC and without immediate_commit.

    Downloads
     
  • v1.3.0 7972502eaf

    Release 1.3.0 Stable

    vitalif released this 2023-12-04 02:36:43 +03:00 | 235 commits to master since this release

    New features:

    • RDMA without ODP - much faster and all cards are now supported, not just Mellanox
    • VDUSE in CSI - faster, more stable and can even recover after CSI pod restart!
    • Reserve journal space for stabilize requests dynamically to prevent stalls under load with EC
    • Raise default NBD timeout from 30 to 300 seconds and allow to take it from /etc/vitastor/vitastor.conf
    • Remove explicit etcdUrl/etcdPrefix K8S storage class parameter support to prevent
      etcd migration issues for volumes created with these parameters
    • Support QEMU 8.1 and pve-qemu 8.1

    Bug fixes:

    • Fix RDMA connection (and thus memory) leak
    • Fix rare crashes under load due to incorrect io_uring queue size tracking
    • Fix monitor statistics aggregation in case of empty /osd/stats keys
    • Fix crash on unknown long argument to vitastor-disk
    • Allow trailing comma in JSONs again
    • Fix crash on attempts to dump a long listing of objects "to stabilize" or "to rollback" in a slow op
    Downloads
     
  • v1.2.0 5524dbdab7

    Release 1.2.0 Stable

    vitalif released this 2023-11-05 01:48:57 +03:00 | 255 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
    Downloads
     
  • v1.1.0 8222e3c77d

    Release 1.1.0 Stable

    vitalif released this 2023-10-28 00:33:06 +03:00 | 282 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
    Downloads
     
  • v1.0.0 6acf562e01

    Release 1.0.0 Stable

    vitalif released this 2023-07-29 18:57:19 +03:00 | 325 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.

    Downloads
     
  • v0.9.6 e651c93a90

    Release 0.9.6 Stable

    vitalif released this 2023-07-29 10:54:00 +03:00 | 367 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
    Downloads
     
  • v0.9.5 10a5fd6abb

    Release 0.9.5 Stable

    vitalif released this 2023-07-21 00:04:41 +03:00 | 379 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 :)

    Downloads
     
  • v0.9.4 1c10430ae1

    Release 0.9.4 Stable

    vitalif released this 2023-07-19 02:50:30 +03:00 | 382 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 :)
    Downloads