• Stable v0.6.16 340a4b4f27

    Release 0.6.16

    vitalif released this 12 months ago | 218 commits to master since this release

    • Implement vitastor-cli status (print cluster status) command
    • Add a new make-osd-hybrid.js script to quickly prepare a lot of hybrid (HDD+SSD) OSDs
    • Implement snapshot deletion for Cinder driver (only works in a healthy cluster)
    • Fix a huge :) bug causing reads to return all zeroes during rebalance. Add a test to prevent it in the future
    • Disconnect NBD proxy correctly without leaving a zombie [vitastor-nbd] process in D state
    • Fix a rare write hang appearing with small write throttling enabled
  • Stable v0.6.15 85298ddae2

    Release 0.6.15

    vitalif released this 1 year ago | 236 commits to master since this release

    • Make peering much faster in medium to large clusters
    • Fix a reenterability issue which could rarely lead to peering process hangs
  • Stable v0.6.14 117d6f0612

    Release 0.6.14

    vitalif released this 1 year ago | 246 commits to master since this release

    • Fix IPv6 address parsing
    • Fix "cannot read bytes of undefined" in the monitor on a fresh DB
    • Fix possible hangs of read requests on OSD restarts without immediate_commit=all mode
    • Fix OSDs skipping misplaced recovery in some cases
    • Fix OSDs possibly dying with "map::at" errors when other OSDs are stopped
    • Fix division by zero in ls if all pool OSDs are down
  • Stable v0.6.13 36f352f06f

    Release 0.6.13

    vitalif released this 1 year ago | 256 commits to master since this release

    • Fix client hangs possible on OSD restarts (bug affected versions from 0.5.11)
    • Fix "Assertion `sqe != NULL' failed" io_uring-related crashes possible
      on some kernels (0.6.11 increased probability of this bug)
    • Fix timeout=0 in NBD proxy
    • Fix build under centos 7
  • Stable v0.6.12 c1929cabe0

    Release 0.6.12

    vitalif released this 1 year ago | 277 commits to master since this release

    etcd connection stability, clang & elbrus support

    • Fix build under CLang and Elbrus LCC compilers, making Vitastor compatible
      with Elbrus CPUs :)
    • Completely fix the bug where OSDs didn't connect to peers and incorrectly marked
      PGs as incomplete
    • Limit I/O depth for deletes the same way as for small writes. Makes OSD crashes
      with "Assertion failed: sqe != NULL" during image deletion go away
    • Fix a very old, but rare, journaling bug (credits to https://github.com/mirrorll)
    • Fix flushing of unclean journaled objects leading to OSDs sometimes hanging
      after failover in EC setups (bug was introduced in 0.6.7)
    • Fix several problems that could prevent smooth operation of a Vitastor cluster
      under the condition of partial etcd failure:
      • OSDs could randomly fail due to too strict error handling
      • New clients and OSDs could be unable to start because of the lack of retries
      • CLI could fail some commands because of the lack of retries
      • Monitor could stop receiving state updates because of the lack of websocket pings
    • Fix monitor being unable to rebalance PGs after a downscale of pool pg_size (3->2)
    • Exit with failure when trying to nbd map or benchmark a non-existing image
    • Use HTTP keep-alive for etcd connections
    • Allow to configure etcd request timeouts and retries
    • Allow to configure NBD timeout, max devices and partitions, and set default to
      up to 64 devices with up to 3 partitions each
  • Stable v0.6.11 0785bdf8b3

    Release 0.6.11

    vitalif released this 1 year ago | 312 commits to master since this release

    • Slightly reduce journaling write amplification (requires no_same_sector_overwrites=false)
    • Fix listen_backlog (it was 0) because it could more than halve OSD socket send speed
    • Support IPv6 OSD addresses
    • Do not try to initialize client in simple-offsets
    • Fix OSDs sometimes marking PGs incomplete instead of trying to connect with peers
    • Allow to configure OSD placement in node_placement
    • Allow to run with 4k sector size block devices. Natural, but it was forbidden
  • Stable v0.6.10 2020608a39

    Release 0.6.10

    vitalif released this 1 year ago | 325 commits to master since this release

    • Implement a storage plugin for Proxmox. Now you can use Vitastor with Proxmox!
    • Implement vitastor-cli df (pool space usage statistics) command
    • Add glob pattern support for vitastor-cli ls
    • Fix several bugs in other CLI commands (resize, create --parent, modify --readonly)
    • Use 512 byte logical block size in QEMU driver by default (and thus don't require to set it in QEMU options)
  • Stable v0.6.9 aa1e21dd99

    Release 0.6.9

    vitalif released this 1 year ago | 345 commits to master since this release

    New features:

    • Build Vitastor driver as part of QEMU
    • Implement renaming images in CLI (vitastor-cli modify --rename)
    • Add vitastor-cli alloc-osd and simple-offsets commands and use them in make-osd,
      thus removing the dependency on etcdctl
    • Make monitor remove stale deleted inode statistics from etcd automatically
    • Implement OSD address selection from a subnet, thus removing the need to specify
      OSD addresses in startup scripts explicitly

    Bug fixes:

    • Fix client failover in case of etcd shutdown or crash (make client survive etcd failures)
    • Stick to the last live etcd in OSD and mon to prevent random failures when one of etcds is down
    • Fix incorrect copying of data from journal to the data device which could lead to data corruption
    • Prefer local etcd IPs in OSD
    • Remove the total PG count restriction in optimize_change which was sometimes leading
      to inability to redistribute PGs over OSDs
    • Fix error response parsing on a failed pg state report
    • Fix slow linear writes with RDMA by changing default buffer settings
    • Fix possible 'TypeError' in openstack nova when using Vitastor cinder driver
    • Fix bugs in vitastor-cli create, ls, rm, modify commands

    Patch changes:

    • Add a patch for libvirt 7.6
    • Add patches for QEMU 6.0 and 6.1
    • Fix config file path XML location parsing in libvirt patches
    • Replace _ with - in QEMU options
    • Fix possible 'TypeError' in openstack nova when using Vitastor cinder driver
    • Fix possible crashes of QEMU block driver in case of incorrect options
  • Stable v0.6.8 920345f7b6

    Release 0.6.8

    vitalif released this 1 year ago | 399 commits to master since this release

    • Build separate packages for OSD, monitor, client, C header, fio and QEMU drivers
      instead of one package which included everything
  • Stable v0.6.7 7eabc364bf

    Release 0.6.7

    vitalif released this 1 year ago | 404 commits to master since this release

    • Implement CLI commands for listing, viewing I/O statistics, creating,
      snapshotting, cloning, resizing and modifying images. All these operations
      are covered by 3 commands: ls, create, modify
    • Implement an important fix to prior OSD set tracking for PGs. The previous
      version had an issue which could lead to data loss due to an OSD with older
      copy of the data thinking it has the newest copy
    • Fix I/O statistics aggregation in the monitor
    • Several minor fixes for Cinder driver
    • Fix QEMU driver to be compatible with QEMU 2.x > 2.0
    • Fix stalls sometimes possible in configurations without immediate_commit due
      to insufficient amount of automatic internal fsync operations
    • Add vita alias for vitastor-cli