Posts up to 2023-05-21

Vitastor 0.9.0 released

New features

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

2023-05-21 Continue reading →

Vitastor 0.8.9 released

  • The tests are now stable and run in a CI system based on Gitea CI
  • The release includes final bug fixes for EC:
    • Implement missing EC recovery of allocation bitmap when built with ISA-L
    • Fix broken snapshot export with EC (allocation bitmap reads were giving incorrect results previously)
  • Also fixed bugs manifesting under heavy load:
    • Fix monitor possibly applying incorrect PG history on retries
    • Fix monitor incorrectly changing PG count when last_clean_pgs contains less PGs than the new number
    • Allow writes to wait for free space again, but now correctly (previously dropped in 0.8.2)
    • Fix a rare segfault in client (handle client stop during incoming stream handling in 1 more place)
    • Make monitor correctly handle etcd connection errors - it could die instead of connecting to another etcd
    • Fix OSD rarely being unable to report PG states after a PG was taken over by another OSD
  • Fixed return code for incomplete EC objects (now EIO) and made cluster client retry this error
  • Made other small changes for tests: timeouts, nice/ionice for etcd, waiting conditions, NBD device checks and so on

2023-05-14 Continue reading →

Vitastor 0.8.8 released

  • Fix vitastor-cli rm/rm-data broken in 0.8.6 (missing messenger initialization)
  • Prepare OSD read handler for upcoming version with scrub - allow “secondary reads” to return errors
  • Fix OSDs re-peering PGs infinitely with a big number of PGs (reproduced in test_add_osd)
  • Fix another variant of flusher sync-waiting stall (reproduced in test_write)
  • Fix other tests in tests/ (will add them to Gitea CI soon)
  • Add patches for QEMU 6.2-8.0
  • Fix QEMU driver compatibility with QEMU 8.0
  • Build packages for RHEL 9 clones (based on AlmaLinux 9)

2023-04-28 Continue reading →

Vitastor 0.8.7 released

This release includes a bunch of important bugfixes for erasure-coded setups with disabled immediate_commit. After these fixes, “test_heal” OSD killing test now passes fine with EC:

  • Fix cluster write stalls with “Error while doing flush on OSD xx: -16 (Device or resource busy)” in OSD logs possible in EC setups with disabled immediate_commit by selectively syncing nonsynced objects on STABILIZE/ROLLBACK (https://github.com/vitalif/vitastor/issues/51)
  • Fix other EC + disabled immediate_commit problems:
    • Fix “opcode=5 retval=-2” errors happening on SYNC retries
    • Fix non-working “pagination” during PG dirty object flushing
    • Fix write operations not continued correctly after dirty object flushing
  • Fix incorrect parity read-modify-write calculation when writing into a lost chunk
  • Fix OSDs losing left_on_dead PG state of non-clean PGs and thus not removing junk data in the cluster
  • Fix a small memory leak caused by bad indexing of EC recovery matrices
  • Fix a rare use-after-free in cluster_client caused by a reenterability issue
  • Fix vitastor-cli create command syntax in the CSI driver
  • Allow to start OSDs without local store for tests
  • Fix memory allocation error in disk_tool_meta for non-standard metadata block sizes
  • Fix delete operations received before loading pool metadata crashing OSDs with “null pointer exception”
  • Improve “theoretical performance” Russian documentation

2023-04-11 Continue reading →

Vitastor 0.8.6 released

Important fixes:

  • Fix possibly incorrect EC parity chunk updates with EC n+k, k > 1 and when the first parity chunk is missing

Minor fixes and improvements:

  • Fix incorrect EC free space statistics in vitastor-cli df output
  • Speedup vitastor-cli startup in clusters with RDMA
  • Remove unused PG “peered” state (previously used to update PG epoch)
  • Use sfdisk with just --json in vitastor-disk (–dump --json isn’t needed)
  • Allow trailing comma in sfdisk output (fixes sfdisk 2.36 compatibility)
  • Slightly improve RDMA send/receive code
  • Reduce RDMA memory consumption by default (rdma_max_recv/send = 16/8)
  • Use vitastor-cli instead of direct etcd interaction in the CSI driver

2023-02-28 Continue reading →

Vitastor 0.8.5 released

  • Fix a possible “double free” bug in the client library happening on OSD restart
  • Fix a possible write hang on PG history update when only epoch is changed
  • Fix incorrect systemd target “local.target” in mon/make-etcd
  • Allow “content” option in PVE storage plugin to allow to enable containers
  • Build client library without tcmalloc which fixes “attempt to free invalid pointer” errors when, for example, trying to run QEMU with both Vitastor and Ceph RBD disks

2023-01-25 Continue reading →

Vitastor 0.8.4 released

New features

  • Implement QCOW2 image/snapshot export via qemu-img (bdrv_co_block_status in the driver)
  • Remove OSDs from PG history during vitastor-cli rm-osd to prevent left_on_dead PG states after deletion
  • Add a new recovery_pg_switch setting to mix all PGs during recovery, to almost fully reduce the probability of ENOSPC during rebalance
  • Introduce partial ENOSPC (“OSD is full”) handling - now ENOSPC doesn’t turn into cascades of crashes
  • Add migration support to Proxmox VE Vitastor driver
  • Track last_clean_pgs on a per-pool basis thus reducing data movement in a cluster with pools remaining unclean/degraded for a long time

2023-01-13 Continue reading →

Vitastor 0.8.3 released

  • Implement a new “vitastor-disk purge” command to remove OSDs with safety checks
  • Implement a new “vitastor-cli rm-osd” command to only remove OSD metadata from etcd
  • Fix a bug where the monitor could ignore OSD removal and other /osd/stats key changes
  • Fix a bug where garbage could be returned when reading objects being written at the same time
  • Fix a rare write stall where journal space could be not reclaimed where there were no new operations in the flush queue
  • Fix a rare peering stall caused by a previous long listing operations queues limiting attempt
  • Fix total object count statistic in OSD on object creation
  • Add missing offset&len into vitastor-disk dump-journal for big_writes, fix JSON format
  • Make vitastor-cli print help on missing command
  • Make vitastor-cli translate all ‘-’ to ‘_’ in CLI options

2022-12-27 Continue reading →

Vitastor 0.8.2 released

  • Fix QEMU driver compatibility with QEMU 7.0 and < 2.9
  • Add patches for pve-qemu-kvm 7.1 (PVE 7.3) and pve-qemu-kvm 6.2 (PVE 7.2)
  • Fix Proxmox driver location in the pve-storage-vitastor package
  • Disable HDD autodetection in non-hybrid mode
  • Explicitly warn about a buggy kernels on -EAGAIN in io_uring
  • Final fix for the lack of zeroing out of old metadata entries (do not crash with “big_write journal_entry was allocated over another object” in some cases after an unclean OSD shutdown)
  • Wait for data writes before fsyncing data if data fsync is enabled
  • Never try to wait for free space inside blockstore thus stalling OSDs
  • Fix a rare crash in osd_peering due to callback ordering
  • Fix a rare duplication of ping & op message IDs
  • Fix a rare use-after-free during pings
  • Add --force to vitastor-disk read-sb
  • Make vitastor-disk dump metadata object IDs in hex, add forgotten commas
  • Fix vitastor-disk SCSI disk cache check

2022-12-17 Continue reading →

Vitastor 0.8.1 released

  • Remove an additional data copy operation when flushing journal (should slightly increase write performance)
  • Fix a bug where new writes in the inmemory_journal=false mode could overwrite the data currently read by a parallel read operation
  • Fix degraded parity writes for EC N+K when K>1 where the bug could also lead to an “assertion failed” error
  • Fix missing journal space check for “big” writes which could lead to “prefill_single_journal_entry(): assertion failed…” error in OSD
  • Fix possible “assertion failed: next->prev_wait >= 0” in client in rare cases
  • Fix missing “len” field in vitastor-disk write-journal big_writes
  • Fix possible crash of a full OSD (ENOSPC)
  • Fix CSI build scripts to include newest packages every time
  • Fix CSI endpoint in the liveness probe manifest

2022-11-20 Continue reading →

← Newer Posts Older Posts →