-
Release 1.7.1 Stable
released this
2024-07-16 00:07:03 +03:00 | 279 commits to master since this releaseSome stupid hotfixes for 1.7.0 :)
- Fix NFS mount
- Fix modify-osd
- Fix use_antietcd not taken from /etc
Downloads
-
Release 1.7.0 Stable
released this
2024-07-15 11:48:35 +03:00 | 286 commits to master since this releaseOmnidirectional release
New features:
- Support handling TCP I/O in simple separate io_uring-based I/O threads - may increase linear performance to 7-8 GB/s
- Experimental internal etcd replacement - antietcd
- Monitor now has a built-in Prometheus exporter
- Added a reference Grafana dashboard
- Implement vitastor-cli osd-tree and ls-osd commands
- Implement vitastor-cli modify-osd command
- Implement vitastor-cli pg-list command
- Implement VitastorFS defragmentation
- Implement basic node.js binding (not published on npm yet)
Changes:
- Make immediate_commit=all the default everywhere to match default vitastor-disk behaviour
- Make pool-create error message more obvious and add details to it
- Set default etcd_ws_keepalive_interval to 5 seconds (speedup client etcd failover)
- Support OpenStack 2023.2 in Nova and Cinder drivers/patches
- Add patches for libvirt 10.x
- Add patches for QEMU 8.2 and 9.0
- Implement internal restart / run_forever in monitor
- Some source tree refactoring - sources are now moved into subdirectories, monitor is now split into multiple files
- Add vitastor_c_inode_get_immediate_commit in vitastor_c client library
- Make vitastor_kv.h header public
Bug fixes:
- Fix total statistics usec/count/bytes not being reported when delta (bps/iops/lat) is zero
- Prevent infinite loop in NFS on files with incorrect metadata pointing to an empty volume
- Fix READDIR offsets (cookies) in VitastorFS sometimes leading to client infinite loops when reading a directory
- Fix a rare infinite loop during OSD journal flushing (OSD hanging and eating 100 % CPU)
- Fix several bugs which could lead to lost writes in setups without immediate_commit:
- Client library treated writes as completed before actually completing them, thus missing them in a subsequent fsync
- Client library didn't repeat writes on the new PG primary when it changed
- OSDs didn't drop peer connections with dirty writes when stopping PG
- Fix Block Pseudo-FS initialization leading to ENOENTs some time after start
- Fix vitastor-cli merge-based commands (merge/flatten/rm snapshot) slowing down and finally failing when using CAS optimistic locks
- Fix pool create/modify --block_size validation
- Fix TTL comparison for determining failed lease/keepalive requests in OSD
- Add support for size suffixes in pool-create --block_size and --immediate_commit values
Downloads
-
Release 1.6.1 Stable
released this
2024-04-22 02:01:29 +03:00 | 359 commits to master since this releaseA bunch of monitor fixes
- Add noout flag for OSDs (/vitastor/config/osd/xx)
- Fix "effective" size of degraded PGs (and thus "used space") calculation in monitor
- Fix monitor not clearing PGs of deleted pools
- Fix incorrect PG generation with hosts with 0 OSDs
- Fix monitor crashing during primary OSD recheck when pool has no PGs
- Fix monitor crashing when node_placement included non-existing OSDs
- Fix possible data movement after removing OSDs reweighted to 0
- Remove extra empty keys from pool configurations created by vitastor-cli create-pool
- Fix 32-bit build
Downloads
-
Release 1.6.0 Stable
released this
2024-04-09 16:57:59 +03:00 | 372 commits to master since this releaseNew features:
- Implement "hierarchical failure domains" and other complex distribution rules, for example
EC 4+2 over 3 DC, with 2 chunks per each DC (documentation) - Make OSDs handle ENOSPC - now cluster stays online even if some OSDs fill up
to 100 %, only writes requiring free space hang - Implement Stage/Unstage & volume locking for CSI to prevent parallel mounting
and/or modifications of the same volume - Warn about full and almost full OSDs in vitastor-cli status
- Add an experimental NBD netlink map mode as an option (documentation)
- Add --pg parameter to vitastor-cli describe, print objects with 0x in human-readable format too
- Add administration docs
Bug fixes:
- Fix client operation retry timeout - previously the timeout wasn't applied and writes were
retries almost instantly - Fix monitors crashing on invalid pool configurations
- Fix journaling - make each journal write wait for all previous journal writes
- Fix monitor thinking that OSD weight is 0 after deleting /osd/config/ key online
- Fix a write stall caused by flusher possibly not trimming journal on rollback
- Set 32k csum_block_size for HDD by default in vitastor-disk
Downloads
- Implement "hierarchical failure domains" and other complex distribution rules, for example
-
Release 1.5.0 Stable
released this
2024-03-16 15:35:10 +03:00 | 401 commits to master since this releaseAfter half a year of hard work, VitastorFS is finally here ! :-)
New features:
- VitastorFS, a full-featured clustered (read-write-many) file system. Documentation: VitastorFS
- Embedded key-value database implementation based on Parallel Optimistic B-Tree algorithm and used for the metadata of VitastorFS
- Pool management commands in vitastor-cli (create-pool, list-pools, rm-pool, modify-pool). Thanks MIND Software (https://mindsw.io) for their contribution! Documentation
Bug fixes:
- Fix a very rare "infinite loop" in the client library
- Fix a rare OSD hang on during start when zeroing out bad metadata entries left from the previous run
Downloads
-
Release 1.4.8 Stable
released this
2024-02-29 09:58:34 +03:00 | 488 commits to master since this release- Do not use \r if output is not a terminal (should fix unexpected job output in proxmox)
- Fix rm/rm-data error return code, add --down-ok option to bypass the error
- Add EIO retry timeout and allow to disable these retries, rename up_wait_retry_interval to client_retry_interval
- Add ubuntu jammy build
- Wait for blockstore initialisation before starting OSD (prevent timeouts when init takes time)
- Fix a rare use-after-free in automatic sync after delete in blockstore
Downloads
-
Release 1.4.7 Stable
released this
2024-02-22 12:45:52 +03:00 | 495 commits to master since this release- Fix another old "BUG: Attempt to overwrite used offset" in a very simple
case: bs=4k rw=write iodepth=16 from OSD start; add this case to tests - Fix a rare crash with "unexpected state during flush: 0x51" possible with
EC since 1.4.2 during rebalance and OSD outages - Fix a rare write stall with EC & immediate_commit=none caused by sync
operations reserving unneeded space in the journal - Fix 32-bit build warnings, most in printf/scanf format strings
Downloads
- Fix another old "BUG: Attempt to overwrite used offset" in a very simple
-
Release 1.4.6 Stable
released this
2024-02-20 17:01:26 +03:00 | 502 commits to master since this releaseUnwavering stabilization of 1.4.x, continued :-)
- Include the accidentally lost part of 1.4.5 journal trimming fix
- Fix a possible OSD crash with "BUG: Attempt to overwrite used offset"
which was probably present for long time, but became apparent after
fixing flapping tests in CI - Fix remaining flapping tests in CI. It was the first time when tests
actually passed without retries :-)
Downloads
-
Release 1.4.5 Stable
released this
2024-02-16 10:13:33 +03:00 | 508 commits to master since this release- 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
Downloads
-
Release 1.4.4 Stable
released this
2024-02-11 16:23:08 +03:00 | 515 commits to master since this releaseA 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
- Recovery auto-tuning (1.4.0 feature) could apply too large delays and stall
- Print etcd dbSize instead of dbSizeInUse in status
Downloads