Commit Graph
1421 Commits
Author SHA1 Message Date
Vitaliy Filippov debb00a535 Check for "Checksum mismatch" and "BUG" messages during test_heal 2023-07-13 01:49:45 +03:00
Vitaliy Filippov c8891ab1d6 Use clean_dyn_size for space check 2023-07-13 01:49:45 +03:00
Vitaliy Filippov 7062b73d87 Log more details about checksum mismatch in big_writes 2023-07-13 01:49:45 +03:00
Vitaliy Filippov 02e24f5144 Use find_holes() in flusher for unification 2023-07-13 01:49:45 +03:00
Vitaliy Filippov 55f506f6e0 Fill journal header to know checksum type & size when dumping journal with --all 2023-07-13 01:49:45 +03:00
Vitaliy Filippov e12dd9b82c Fix journal read checksum verification with inmemory_journal=false 2023-07-13 01:49:45 +03:00
Vitaliy Filippov 82d8848b8f Call fill_partial_checksum_blocks() correctly in regard to COPY_BUF_CSUM_FILL 2023-07-13 01:49:45 +03:00
Vitaliy Filippov ef800408dc Wait for journal reads before checking them in clear_incomplete_csum_block_bits 2023-07-13 01:49:45 +03:00
Vitaliy Filippov 3b1150c478 Check for checksum mismatch absence in test_heal 2023-07-13 01:49:45 +03:00
Vitaliy Filippov ccdf87dc81 Use zero checksum size for zero-length writes 2023-07-13 01:49:45 +03:00
Vitaliy Filippov bede73d158 Fix journal data checksum mangling on corrupted block overwrite 2023-07-13 01:49:45 +03:00
Vitaliy Filippov 8e35319a34 Check journal entry size when checking block checksums 2023-07-13 01:49:45 +03:00
Vitaliy Filippov dc6e88e2ca Fix journal data checksum verification on start 2023-07-13 01:49:45 +03:00
Vitaliy Filippov 4c3370220b Add more details to "journal entry data is corrupt" messages 2023-07-13 01:49:45 +03:00
Vitaliy Filippov f02344c0a4 ...and partially remove the perversion with bitmap inlining 2023-07-13 01:49:45 +03:00
Vitaliy Filippov b369032665 Sadly we have to refcount dyn_data... 2023-07-13 01:49:45 +03:00
Vitaliy Filippov 319b0833eb Fix clean block checksum read 2023-07-13 01:49:45 +03:00
Vitaliy Filippov 0641b06fb1 Allow to forcibly set meta_format 2023-07-13 01:49:45 +03:00
Vitaliy Filippov 3b9873b9a9 Rename meta_version to meta_format 2023-07-13 01:49:45 +03:00
Vitaliy Filippov eef97a0dc4 Support old metadata format in vitastor-disk dump-meta 2023-07-13 01:49:45 +03:00
Vitaliy Filippov 5b16e5ab5b Fix journal big_write simple reads after checksum changes 2023-07-13 01:49:45 +03:00
Vitaliy Filippov bb430fccd5 Verify checksums in test_heal in different combinations 2023-07-13 01:49:45 +03:00
Vitaliy Filippov bafadd5559 Fix bitmap-granular checksums 2023-07-13 01:49:45 +03:00
Vitaliy Filippov 6ebca5fedc Fix wait_journal_count not being zeroed 2023-07-13 01:49:45 +03:00
Vitaliy Filippov e3e2325ef5 Rewrite and fix find_holes into a more obvious version 2023-07-13 01:49:45 +03:00
Vitaliy Filippov 9a908f3e66 Fix missing checksum read offset 2023-07-13 01:49:45 +03:00
Vitaliy Filippov 89f6fef920 Add a test for checksums 2023-07-13 01:49:45 +03:00
Vitaliy Filippov 63b9382067 Fix checksum verification in big_write journal reads 2023-07-13 01:49:45 +03:00
Vitaliy Filippov 8a7dea9fa2 Verify checksums during journal reads 2023-07-13 01:49:45 +03:00
Vitaliy Filippov 1adf77f8fb Add backwards compatibility with non-checksum metadata and journal formats 2023-07-13 01:49:45 +03:00
Vitaliy Filippov 7a530346a6 Implement large csum_block_size support (more than 4k) + refactor blockstore_flush 2023-07-13 01:49:45 +03:00
Vitaliy Filippov cc1f03971d Implement bitmap-granular (4k) metadata & data checksums 2023-07-13 01:49:45 +03:00
Vitaliy Filippov a0aac7eb2a Update drives 2023-07-13 01:49:45 +03:00
Vitaliy Filippov ac7b834af3 Disable journal_no_same_sector_overwrites by default for HDD-only 2023-07-10 00:34:35 +03:00
Vitaliy Filippov ee0c78fd74 Fix default HDD block size in docs (actual size is 1 MB) 2023-07-09 13:12:30 +03:00
Vitaliy Filippov e6646a5b2f Bump QEMU version to vitastor3 2023-07-09 13:01:04 +03:00
Vitaliy Filippov ae69662b17 Add "Recommended drives" 2023-07-09 12:59:18 +03:00
Vitaliy Filippov 57ad4c3636 Add a note about HDD, enable throttling only for hybrid OSDs 2023-07-09 12:45:11 +03:00
Vitaliy Filippov b7e4d0c9bf Fix journal dirty_start position tracking and some debug prints
Fixes two bugs found during HDD testing :-)
1) OSD crashed with "BUG: Attempt to overwrite used offset of the journal" during
   `fio -bs=900k -iodepth=128` test with 16 MB journal
2) OSD stalled during `fio -bs=512k -iodepth=128` test with 64 MB journal
2023-07-09 01:17:55 +03:00
Vitaliy Filippov 161a23c966 Support reloading state when etcd says "revisions were compacted"
Before this change, OSDs almost always died when one of the etcds was restarted,
even though the rest of them was still in quorum and the lease was still active
2023-07-07 01:33:48 +03:00
Vitaliy Filippov 2f999d8607 Reduce etcd memory usage
With default --snapshot-count 100000 and GOGC=100 it easily reaches 6.6 GB
even when we only store 1-2 MB of data in it
2023-07-06 00:46:26 +03:00
Vitaliy Filippov d007a374f2 Delete extra /pool/stats/ keys for non-existing pools 2023-07-06 00:40:13 +03:00
Vitaliy Filippov 45c0694853 Clear etcd_local addresses on reload and also skip duplicates 2023-07-06 00:39:39 +03:00
Vitaliy Filippov 57bcba2406 Add notes about VDUSE 2023-07-04 16:51:46 +03:00
Vitaliy Filippov 30ac899074 Make QEMU driver compatible with older vitastor_client and with systems without io_uring 2023-07-04 15:51:43 +03:00
Vitaliy Filippov 2348d39cf4 Avoid repeated qemu_uring_handlers, add 2.0-2.7 compatibility 2023-07-04 00:28:23 +03:00
Vitaliy Filippov 3de7929fe5 Integrate v2 - direct epoll 2023-07-04 00:28:23 +03:00
Vitaliy Filippov 07b2196bc2 Integrate QEMU driver with io_uring 2023-07-04 00:28:23 +03:00
Vitaliy Filippov b8e30608d6 Bump QEMU version to vitastor2 2023-07-01 00:55:32 +03:00
Vitaliy Filippov a612cdca47 Release 0.9.3
- Add patch for libvirt 9.0
- Add support for Proxmox VE 8.0
- Fix compatibility of the QEMU driver with iothread (QEMU rebuilds are coming)
- Fix vitastor-cli rm-data/rm/merge hanging when some OSDs are down.
  Allow deletions in unclean cluster at the cost of some data possibly
  "reappearing" when those OSDs start back. In that case you can just repeat
  the deletion request using rm-data.
- A bunch of bug fixes for snapshots:
  - Fix snapshot reads often not working at all with snapshot chain size > 2
  - Fix optimized snapshot data merge (children to parent)
  - Fix updating of image name index key during optimized merge
  - Fix auto-selection preventing the use of optimized merge with only 1 snapshot
  - Fix incorrect CAS retries during snapshot merge
  - Fix snapshot merge progress reporting
- Fix primary_read bitmap buffers use-after-free which could lead to
  incorrect allocation map reads
- Remove /usr/local/bin path from make-etcd
- Some documentation fixes
v0.9.3
2023-07-01 00:25:58 +03:00