Vitaliy Filippov
93dc31f3fc
Fix possible segfault in vitastor-cli ls -l
2023-10-18 11:11:41 +03:00
Vitaliy Filippov
f245b56176
Fix another possible reenterability issue in cluster_client
...
Non-reproducible in QEMU/FIO, only caught during K/V DB debugging
2023-10-08 11:02:53 +03:00
Vitaliy Filippov
befca06f18
Support any OSD count in test_heal
2023-10-08 11:02:53 +03:00
Vitaliy Filippov
fbf0263625
Add qemu-storage-daemon to documentation
2023-09-16 18:40:52 +03:00
Vitaliy Filippov
3bcf276d4d
Run tests with writeback
2023-09-16 17:52:17 +03:00
Vitaliy Filippov
38db53f5ee
Implement client writeback cache
...
- Disabled by default, enable with client_enable_writeback=true
- Even then only enabled in FIO when -direct is disabled and in QEMU when
block device cache is enabled in settings
- Can also be enabled in other clients like vitastor-cli using parameter
client_writeback_allowed=true, but not recommended
2023-09-16 17:52:17 +03:00
Vitaliy Filippov
cd543a90bc
Prevent stack overflows in cli_merge with CAS and writeback cache
2023-09-16 17:52:17 +03:00
Vitaliy Filippov
f600cc07b0
Autosync in blockstore every autosync_writes, too
2023-09-16 17:52:17 +03:00
Vitaliy Filippov
6a8e530e6b
Add FIXME to timerfd_manager
2023-09-16 17:52:17 +03:00
Vitaliy Filippov
5cadb170b9
Fix possible OSD crash during sync due to missing min_flushed_journal_sector reset
2023-09-16 17:52:17 +03:00
Vitaliy Filippov
e72d4ed1d4
Remove unused bs_sync fields
2023-09-16 17:52:17 +03:00
Vitaliy Filippov
ff479a102d
Make MON filter OSDs by block layout to prevent "refusing to start PGs of this pool" errors on misconfiguration
2023-09-16 17:52:17 +03:00
Vitaliy Filippov
27d0d5b06a
Reads do not have to wait for buffer flushes anymore
2023-09-16 17:52:17 +03:00
Vitaliy Filippov
33950c1ec8
Fix fio_sec_osd attr_len
2023-09-16 17:49:10 +03:00
Vitaliy Filippov
eea7ef1f19
Remove debug osd_trace from test_write
2023-09-12 01:35:36 +03:00
Vitaliy Filippov
cc0fdc6253
Remove erroneous block_size mismatch warnings on pools without matching PGs
2023-09-08 23:19:04 +03:00
Vitaliy Filippov
79ecd59b10
Flush STDOUT and STDERR before exiting from cli to fix Proxmox "Unexpected result"
2023-09-07 17:30:26 +03:00
Vitaliy Filippov
51081c9b45
Put etcd into tmpfs for tests
2023-09-07 02:35:09 +03:00
Vitaliy Filippov
b7d398be5b
Fix sscanf validation usage (field count instead of null_byte == 0)
2023-09-07 02:34:35 +03:00
Vitaliy Filippov
85e9f67d9d
Add supported_truncate_flags
2023-09-06 17:37:52 +03:00
Vitaliy Filippov
79c6d6f323
Make QEMU driver compatible with QEMU 8.1
2023-08-24 02:23:55 +03:00
Vitaliy Filippov
ae760dbc1d
Fix co_truncate size division by BDRV_SECTOR_SIZE
2023-08-24 01:55:35 +03:00
Vitaliy Filippov
65487da4b1
Do not include msgr_rdma.h into messenger.h
2023-08-24 01:55:35 +03:00
Vitaliy Filippov
7862282938
Extract validation to check_rw(), remove duplicate code with OP_SYNC
2023-08-13 23:49:52 +03:00
Vitaliy Filippov
30ce2bd951
Fix buffer insert in cluster_client
2023-08-12 11:08:50 +03:00
Vitaliy Filippov
b1a0afd10a
Aggregate buffer flushes
2023-08-11 11:26:13 +03:00
Vitaliy Filippov
85b6134910
Return dirty buffers on read in client
...
Required at least to return buffers when they need to be replayed, but until
they are actually replayed
2023-08-09 00:57:08 +03:00
Vitaliy Filippov
b1b07a393d
Fix incorrect marking op parts as done with snapshots (could probably lead to client hangs)
2023-08-09 00:57:08 +03:00
Vitaliy Filippov
7333022adf
Add a third I/O mode: O_DIRECT|O_SYNC, change parameters to data_io/meta_io/journal_io
2023-08-09 00:57:08 +03:00
Vitaliy Filippov
ab8627c9fa
Fix monitor retrying failed etcd connection in an infinite loop without pauses
2023-08-09 00:57:08 +03:00
Vitaliy Filippov
6acf562e01
Release 1.0.0
...
New features:
- Data and metadata checksums!
- Metadata checksums are always used with new disk format
- Data checksums can be turned on with --data_csum_type crc32c for new OSDs
- Checksum block size can be configured
- inmemory_metadata now also affects keeping checksums in memory
- Linux page cache I/O caching support which can be enabled separately for
data, metadata (including checksums) and journal (O_SYNC instead of O_DIRECT)
- Details [here](https://git.yourcmc.ru/vitalif/vitastor/src/branch/master/docs/config/layout-osd.en.md#data_csum_type )
- Backwards compatibility is preserved, you can use new OSDs with old disks
Release also includes bug fixes from [0.9.6](https://git.yourcmc.ru/vitalif/vitastor/releases/tag/v0.9.6 ).
0.9.6 is moved to "-oldstable" repositories and will be available for some additional time.
2023-07-29 18:57:19 +03:00
Vitaliy Filippov
6f797f429e
Add a note about -oldstable
2023-07-29 18:11:13 +03:00
Vitaliy Filippov
b8a1734465
Reword checksum docs one more time
2023-07-29 14:42:56 +03:00
Vitaliy Filippov
c752b68167
Remove "without checksums" from docs :)
2023-07-29 12:19:03 +03:00
Vitaliy Filippov
564df2eb5d
Support using buffered I/O with O_SYNC instead of direct I/O
2023-07-29 12:17:18 +03:00
Vitaliy Filippov
9a427dd70a
Allow to override OSD devices in tests
2023-07-29 12:17:18 +03:00
Vitaliy Filippov
1a4ceb420d
Track used blocks, not object versions
2023-07-29 12:17:18 +03:00
Vitaliy Filippov
21b5124a4b
Document data_csum_type and csum_block_size parameters
2023-07-29 12:17:18 +03:00
Vitaliy Filippov
4181add1f4
Remove creepy "metadata copying" during overwrite
...
Instead of it, just do not verify checksums of currently mutated objects.
When clean data modification during flush runs in parallel to a read request,
that request may read a mix of old and new data. It may even read a mix of
multiple flushed versions if it lasts too long... And attempts to verify it
using temporary copies of metadata make the algorithm too complex and creepy.
2023-07-29 12:17:18 +03:00
Vitaliy Filippov
a8464c19af
Support keeping checksums on disk (not in memory)
...
Definitely beneficial for SSD+HDD setups
2023-07-29 12:17:18 +03:00
Vitaliy Filippov
819cb70cdd
Check for "Checksum mismatch" and "BUG" messages during test_heal
2023-07-29 12:17:18 +03:00
Vitaliy Filippov
3c8e4c6b72
Use clean_dyn_size for space check
2023-07-29 12:17:18 +03:00
Vitaliy Filippov
8ef4cf89dc
Log more details about checksum mismatch in big_writes
2023-07-29 12:17:18 +03:00
Vitaliy Filippov
7bfb1639ea
Use find_holes() in flusher for unification
2023-07-29 12:17:18 +03:00
Vitaliy Filippov
628e481c32
Fill journal header to know checksum type & size when dumping journal with --all
2023-07-29 12:17:18 +03:00
Vitaliy Filippov
af6f2046fc
Fix journal read checksum verification with inmemory_journal=false
2023-07-29 12:17:18 +03:00
Vitaliy Filippov
9357e5293e
Call fill_partial_checksum_blocks() correctly in regard to COPY_BUF_CSUM_FILL
2023-07-29 12:17:18 +03:00
Vitaliy Filippov
12851dc07d
Wait for journal reads before checking them in clear_incomplete_csum_block_bits
2023-07-29 12:17:18 +03:00
Vitaliy Filippov
a5753e35a3
Check for checksum mismatch absence in test_heal
2023-07-29 12:17:18 +03:00
Vitaliy Filippov
d6ee1ca17c
Use zero checksum size for zero-length writes
2023-07-29 12:17:18 +03:00