• v2.2.0 95ec750b8c

    Release 2.2.0
    All checks were successful
    Test / buildenv (push) Successful in 10s
    Test / build (push) Successful in 4m15s
    Test / npm_lint (push) Successful in 12s
    Test / test_cas (push) Successful in 11s
    Test / make_test (push) Successful in 42s
    Test / test_change_pg_size (push) Successful in 7s
    Test / test_change_pg_count (push) Successful in 35s
    Test / test_change_pg_count_ec (push) Successful in 38s
    Test / test_create_nomaxid (push) Successful in 7s
    Test / test_add_osd (push) Successful in 1m22s
    Test / test_etcd_fail_antietcd (push) Successful in 38s
    Test / test_etcd_fail (push) Successful in 43s
    Test / test_interrupted_rebalance (push) Successful in 45s
    Test / test_create_halfhost (push) Successful in 7s
    Test / test_failure_domain (push) Successful in 13s
    Test / test_interrupted_rebalance_imm (push) Successful in 47s
    Test / test_snapshot (push) Successful in 15s
    Test / test_interrupted_rebalance_ec (push) Successful in 47s
    Test / test_interrupted_rebalance_ec_imm (push) Successful in 49s
    Test / test_snapshot_ec (push) Successful in 16s
    Test / test_minsize_1 (push) Successful in 12s
    Test / test_rm (push) Successful in 10s
    Test / test_move_reappear (push) Successful in 16s
    Test / test_snapshot_down (push) Successful in 14s
    Test / test_snapshot_chain (push) Successful in 30s
    Test / test_snapshot_down_ec (push) Successful in 11s
    Test / test_snapshot_chain_ec (push) Successful in 37s
    Test / test_splitbrain (push) Successful in 12s
    Test / test_rm_degraded (push) Successful in 1m3s
    Test / test_rebalance_verify (push) Successful in 1m37s
    Test / test_rebalance_verify_imm (push) Successful in 1m37s
    Test / test_dd (push) Successful in 13s
    Test / test_rebalance_verify_ec (push) Successful in 1m42s
    Test / test_root_node (push) Successful in 9s
    Test / test_rebalance_verify_ec_imm (push) Successful in 1m43s
    Test / test_write_no_same (push) Successful in 7s
    Test / test_switch_primary (push) Successful in 34s
    Test / test_write (push) Successful in 31s
    Test / test_write_xor (push) Successful in 34s
    Test / test_heal_pg_size_2 (push) Successful in 2m16s
    Test / test_heal_local_read (push) Successful in 2m17s
    Test / test_heal_antietcd (push) Successful in 2m19s
    Test / test_heal_csum_32k_dmj (push) Successful in 2m29s
    Test / test_heal_csum_32k_dj (push) Successful in 2m29s
    Test / test_heal_csum_32k (push) Successful in 2m22s
    Test / test_heal_csum_4k_dmj (push) Successful in 2m30s
    Test / test_resize (push) Successful in 16s
    Test / test_resize_auto (push) Successful in 10s
    Test / test_osd_tags (push) Successful in 11s
    Test / test_snapshot_pool2 (push) Successful in 16s
    Test / test_enospc (push) Successful in 12s
    Test / test_enospc_xor (push) Successful in 13s
    Test / test_enospc_imm (push) Successful in 11s
    Test / test_enospc_imm_xor (push) Successful in 12s
    Test / test_scrub (push) Successful in 14s
    Test / test_scrub_zero_osd_2 (push) Successful in 14s
    Test / test_scrub_xor (push) Successful in 14s
    Test / test_scrub_pg_size_3 (push) Successful in 14s
    Test / test_scrub_pg_size_6_pg_minsize_4_osd_count_6_ec (push) Successful in 16s
    Test / test_scrub_ec (push) Successful in 18s
    Test / test_nfs (push) Successful in 11s
    Test / test_heal_csum_4k_dj (push) Successful in 2m20s
    Test / test_heal_csum_4k (push) Successful in 2m23s
    Test / test_heal_ec (push) Successful in 2m16s
    Stable

    vitalif released this 2025-05-11 00:26:08 +03:00 | 140 commits to master since this release

    New features:

    • Localized read support for multi-datacenter setups.
    • io_uring-based zero-copy send support - read the instruction carefully for optimal performance!
    • Improve and speedup data distribution, especially in cases of very large hosts (100 OSD+). Previously, PG optimization speed depended on the number of OSDs, now it only depends on the number of failure domains. Distribution over specific OSDs is now also more even and becomes strictly more even when you increase the number of PGs.
    • Add a very interesting instruction to change NFS_MAX_FILE_IO_SIZE
    • Check operation sequencing and stop connections when it breaks - should help catch some very rare RDMA packet loss problems.
    • vitastor-cli rm-osd now refuses to remove OSDs which are still up and suggests to use vitastor-disk purge.
    • Allow removal of direntries referring non-existent inodes in VitastorFS.
    • Change default vitastor-etcd data dir to /var/lib/etcd/vitastor.

    Bug fixes:

    • Fix compatibility with ISA-L 2.31+. ⚠️Very important: please upgrade Vitastor before upgrading ISA-L to 2.31+.
    • Fix in-memory state cleanup for incomplete PGs.
    • Fix monitor crash with non-existent node_placement nodes.
    • Slightly speedup vitastor-kv dump command by adding output buffering.
    • Fix theoretically possible slowdowns in OSD sub-operation failure handling code.
    • Fix very rare stack overflows in vitastor-kv.
    • Fix a possible crash in VitastorFS during handling of file creation race condition.
    • Fix modify-pool -s PG_SIZE which didn't work without --pg_minsize.
    • Fix marking peer OSDs as alive on receiving data from them via RDMA - in theory,
      the bug could result in instability with RDMA under high load with slow disks.
    • Fix a rare OSD crash due to double handle_primary_subop() call.
    • Fix latency aggregation in global stats (/vitastor/stats in etcd) - do not sum it.
    • Hide "Ran out of journal space" log messages by default.
    • Wait for RDMA-CM EVENT_ESTABLISHED after rdma_accept(), handle rdma_accept() before acking the event.
    • Fix VitastorFS total & free numbers multiplied by extra 2.
    • Fix systemd unit name in make-etcd.
    • Do not allow reweight > 1 in vitastor-cli modify-osd.
    • Fix docker build.
    Downloads