Vitaliy Filippov
c71e5e7bbd
Fix possible use-after-free during pings
2022-12-04 00:16:47 +03:00
Vitaliy Filippov
8fdf30b21f
Release 0.8.1
...
- 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 11:44:09 +03:00
Vitaliy Filippov
238037ae31
Make journal trimmer wait until reads are completed when inmemory_journal is false
...
Without this new writes may in theory overwrite journal data being read at that time
2022-11-20 01:49:21 +03:00
Vitaliy Filippov
09a8864686
Fix degraded parity writes for EC N+K when K>1
...
Fixes possible `calc_rmw_parity_ec(): Assertion `bufs[i][curbuf[i]].buf' failed` error
2022-11-20 00:50:13 +03:00
Vitaliy Filippov
6e6f6ecbb0
Add missing journal space check for big_writes
...
Fixes possible `prefill_single_journal_entry(): Assertion `!journal.sector_info[journal.cur_sector].flush_count' failed` error
2022-11-20 00:50:13 +03:00
Vitaliy Filippov
9491f81419
Add missing documentation for OSD tags
2022-11-20 00:50:13 +03:00
Vitaliy Filippov
44c2b30167
Take newest packages every time when rebuilding CSI
2022-11-20 00:50:13 +03:00
Vitaliy Filippov
bf8a0581cd
Fix possible "assertion failed: next->prev_wait >= 0" in client
2022-11-20 00:50:13 +03:00
Vitaliy Filippov
5953942042
Add crc32c test utility
2022-11-20 00:50:13 +03:00
Vitaliy Filippov
a276a1f737
Do not copy journal data additional time when flushing
2022-11-20 00:50:13 +03:00
Vitaliy Filippov
cc24e5796e
Add a FIXME
2022-11-20 00:50:09 +03:00
Vitaliy Filippov
6e26732e6a
Fix skipped "len" field in vitastor-disk write-journal big_writes
2022-11-12 12:01:40 +03:00
Vitaliy Filippov
b4edc79449
Fix possible segfault on ENOSPC
2022-11-12 11:59:43 +03:00
Vitaliy Filippov
5f26887d32
Fix csi endpoint in liveness probe
2022-11-10 18:37:37 +03:00
Vitaliy Filippov
11ec9ad874
Release 0.8.0
...
- Implement automatic OSD activation via udev and simple on-disk superblock storage
- Add a new `vitastor-disk` tool and merge all disk-related functionality there.
Now it can prepare new OSD disks, upgrade plain old systemd units to the new scheme,
resize OSD data area, manage OSD services by disk paths, manage superblocks,
automatically check and disable disk cache, dump and write back journal and metadata.
- Add a documentation section about `vitastor-disk` (read it if you want details!)
- Install systemd services during package installation instead of the older method
of manually creating them via separate shell scripts
- Add a new `make-etcd` script that reuses /etc/vitastor/vitastor.conf to configure etcd
- Allow to configure block_size, bitmap_granularity and immediate_commit per-pool
- Fix "fatal error: tried to overwrite non-zero metadata entry" which was possible
in some cases after unclean OSD shutdown (caused by old metadata entries not being zeroed)
2022-09-05 13:51:20 +03:00
Vitaliy Filippov
83bb6598dc
Fix fsync autodetection for the single-device mode
2022-09-05 13:51:20 +03:00
Vitaliy Filippov
150f369346
Hotfixes for vitastor-disk prepare: max_other, get device size, older sfdisk
2022-09-05 12:48:27 +03:00
Vitaliy Filippov
8d9a5fde15
Fix docs (block_size vs object_size)
2022-09-04 14:47:04 +03:00
Vitaliy Filippov
9ccc607ab9
Fix parse_size
2022-09-04 14:20:56 +03:00
Vitaliy Filippov
8972878c77
Fix make-etcd for ip:port
2022-09-04 14:11:59 +03:00
Vitaliy Filippov
2a1da88253
Create /etc/vitastor during package installation
2022-09-03 23:31:55 +03:00
Vitaliy Filippov
2f13f347b0
Fix space stats in mon
2022-09-03 11:16:33 +03:00
Vitaliy Filippov
9453db0e99
Add a newer make-etcd.js
2022-09-03 02:04:21 +03:00
Vitaliy Filippov
a828a1233d
Remove old make-osd scripts
2022-09-03 02:04:21 +03:00
Vitaliy Filippov
9481456dfe
Automatically check whether to disable cache during prepare
2022-09-03 02:04:21 +03:00
Vitaliy Filippov
bd11db5d0a
Add vitastor-mon.service, vitastor.target, create user and log directory during package installation
2022-09-03 00:09:22 +03:00
Vitaliy Filippov
68ebe5993a
Fix partition reuse
2022-09-02 23:32:25 +03:00
Vitaliy Filippov
eecbfb66ce
Remove the old make-osd.sh script from packages
2022-09-02 20:35:15 +03:00
Vitaliy Filippov
a537db8909
Add documentation for the new "vitastor-disk" tool
2022-08-22 00:31:30 +03:00
Vitaliy Filippov
54ef2c389f
Followup to the "tried to overwrite" fix: also handle it in case of inmemory_meta == false
2022-08-21 01:28:29 +03:00
Vitaliy Filippov
153c73574a
Refactor blockstore_init_meta into slightly more obvious code
2022-08-21 01:21:13 +03:00
Vitaliy Filippov
d83580bd68
Fix "tried to overwrite non-zero metadata entry" when during a previous metadata
...
flush writing new entry is completed, but zeroing out an old one isn't
2022-08-21 00:31:18 +03:00
Vitaliy Filippov
29b40aba93
Add write-meta command (for debug)
2022-08-20 23:56:57 +03:00
Vitaliy Filippov
a52f2b0e8f
Add write-journal command (for debug)
2022-08-20 14:05:53 +03:00
Vitaliy Filippov
1407db9c08
Fix vitastor-disk prepare bugs
2022-08-19 02:22:54 +03:00
Vitaliy Filippov
c0d5e83fb8
Run partprobe when partitions do not appear
2022-08-18 02:05:16 +03:00
Vitaliy Filippov
40d8d65188
Rewrite upgrade-simple to C++
2022-08-18 01:31:31 +03:00
Vitaliy Filippov
a16263e88c
Fix bugs in the upgrade script and in the udev startup script
2022-08-17 10:28:34 +03:00
Vitaliy Filippov
e62bab1b39
Add systemd unit for udev deployments
2022-08-15 00:23:26 +03:00
Vitaliy Filippov
cb4e3a118d
Fix warning
2022-08-15 00:18:21 +03:00
Vitaliy Filippov
b1e39b5dea
Split disk_tool.cpp into separate files
2022-08-14 02:37:01 +03:00
Vitaliy Filippov
1170319431
Finish vitastor-disk prepare in theory
2022-08-14 02:13:24 +03:00
Vitaliy Filippov
2e0a2221eb
vitastor-disk prepare: WIP second form command of the command
2022-08-12 01:58:28 +03:00
Vitaliy Filippov
5a10d135f3
Allow to configure block_size, bitmap_granularity and immediate_commit per-pool
2022-08-11 01:56:33 +03:00
Vitaliy Filippov
4c9aaa8a86
vitastor-disk prepare: implement first form of the command
2022-08-09 01:29:29 +03:00
Vitaliy Filippov
ae99ee6266
Rename base64.{cpp.h} to str_util
2022-07-31 01:12:37 +03:00
Vitaliy Filippov
5af75f7d78
Implement vitastor-cli and vitastor-disk --help <command>
2022-07-31 01:10:05 +03:00
Vitaliy Filippov
7dc6f10ea1
Add read-sb command
2022-07-28 00:14:23 +03:00
Vitaliy Filippov
6fde9950d6
Implement upgrade tool from "simple" units to superblock+udev deployments
2022-07-27 02:33:43 +03:00
Vitaliy Filippov
76dd0fdcea
Implement pre-exec command with on-start OSD checks
2022-07-24 15:09:45 +03:00
Vitaliy Filippov
5acc19bbd5
Implement systemctl start/stop and other commands
2022-07-23 02:18:40 +03:00
Vitaliy Filippov
d5ca4e1f90
Add exec-osd command
2022-07-22 02:17:24 +03:00
Vitaliy Filippov
67e04f789f
Add write-sb (superblock) command
2022-07-19 01:14:31 +03:00
Vitaliy Filippov
837407a84c
Add udev import command
2022-07-19 01:14:31 +03:00
Vitaliy Filippov
1fe5908899
WIP OSD activation from superblock
2022-07-17 02:14:50 +03:00
Vitaliy Filippov
dcc6d546be
Move simple-offsets into vitastor-disk, too
2022-07-15 02:19:35 +03:00
Vitaliy Filippov
85fa389557
Add a test for disk-tool resize
2022-07-15 01:38:30 +03:00
Vitaliy Filippov
dfa433c63b
Add JSON format to dump-journal
2022-07-15 01:38:30 +03:00
Vitaliy Filippov
cf487c95aa
Fix resizer
2022-07-15 01:38:30 +03:00
Vitaliy Filippov
b10656ca09
Parse new disk params in disk_tool resizer
2022-07-15 01:38:30 +03:00
Vitaliy Filippov
ea632367e9
Do not alter dsk.meta_offset/len to skip superblock
2022-07-15 01:38:30 +03:00
Vitaliy Filippov
4d777c6729
Set journal/meta devices to data device explicitly instead of ""
2022-07-15 01:38:30 +03:00
Vitaliy Filippov
0c404c5074
Use blockstore_disk in disk_tool
2022-07-15 01:38:30 +03:00
Vitaliy Filippov
dfd80626bd
Extract disk opening functions to separate module
2022-07-15 01:38:30 +03:00
Vitaliy Filippov
30907852c2
Use simple std::map for the config
2022-07-15 01:38:30 +03:00
Vitaliy Filippov
078ed5b116
WIP Data area resize tool
2022-07-15 01:38:30 +03:00
Vitaliy Filippov
73a363bf92
Rename some variables and constants
2022-07-15 01:38:30 +03:00
Vitaliy Filippov
b0e86ca643
Merge dump-journal and dump-meta into the new "vitastor-disk" tool
2022-07-15 01:38:30 +03:00
Vitaliy Filippov
8800afb649
Fix void* arithmetic again
2022-07-15 01:38:30 +03:00
Vitaliy Filippov
c10c90f620
Swap cli.en.md and cli.ru.md contents O_o
2022-07-15 01:38:30 +03:00
Vitaliy Filippov
e20cdd13b6
Fix simple-offsets return value
2022-07-15 01:38:30 +03:00
Vitaliy Filippov
d29b5d2d04
Add Russian translation of VNPL-1.1
2022-06-24 01:34:25 +03:00
Vitaliy Filippov
65b0e8e940
Fix typo in VNPL-1.1
2022-06-24 01:34:25 +03:00
Vitaliy Filippov
bce357e2a5
Do not read all metadata into memory when dumping
2022-06-13 01:26:30 +03:00
Vitaliy Filippov
0876ca09cd
Fix dumper includes and print format
2022-06-11 00:30:44 +03:00
Vitaliy Filippov
dac12d8a4c
Implement metadata dump tool
2022-06-10 18:50:09 +03:00
Vitaliy Filippov
1eec4407ab
Fix inode creation when /index/maxid is out of sync
2022-06-06 16:35:51 +03:00
Vitaliy Filippov
342517d126
Fix typo
2022-06-05 00:45:02 +03:00
Vitaliy Filippov
675bc12a13
Add extern "C" for systems like Gentoo which miss it in jerasure includes
2022-06-05 00:33:38 +03:00
Vitaliy Filippov
101592bbff
Release 0.7.1
...
- Add ISA-L erasure code implementation, now used automatically instead of jerasure when available
- Fix listings sending too many parallel requests to OSDs
- Fix rm-data crashing with --wait-list
- Remove empty inodes from statistics and `ls` output, after <inode_vanish_time> seconds after deletion
- Make monitor delete pool statistics when the pool is deleted and thus remove them from `df` output
- Log multiple etcd addresses in OSD logs correctly
- Fix true/false parsing in json configs like no_recovery/no_rebalance
- Show no_recovery, no_rebalance, readonly flags in status
2022-06-05 00:07:24 +03:00
Vitaliy Filippov
be4087d9d2
Add a FIXME to test_interrupted_rebalance
2022-06-05 00:06:56 +03:00
Vitaliy Filippov
404e43dd2d
Note that ISA-L does not need to be enabled separately
2022-06-04 22:58:02 +03:00
Vitaliy Filippov
87613ed590
Add ISA-L into RPM specs
2022-06-04 13:27:06 +03:00
Vitaliy Filippov
2a2e914ef9
Show no_recovery, no_rebalance and readonly flags in status
2022-06-04 13:27:06 +03:00
Vitaliy Filippov
0cdc9292c8
Fix true/false parsing in json configs like no_recovery/no_rebalance
2022-06-04 13:27:06 +03:00
Vitaliy Filippov
3e1b03bb5c
Show all etcd addresses in the "reporting to..." message
2022-06-04 13:27:06 +03:00
Vitaliy Filippov
36e851505a
Make monitor delete pool statistics when the pool is deleted
2022-06-04 13:27:06 +03:00
Vitaliy Filippov
1efbbb0c36
Make deleted inodes vanish from statistics after 60 seconds
2022-06-04 13:27:06 +03:00
Vitaliy Filippov
088dd15449
Exclude empty inodes from stats
2022-06-04 00:18:17 +03:00
Vitaliy Filippov
4a531d7b8b
Fix listings sending too many parallel requests to OSDs, fix rm-data crashing with --wait-list
2022-06-03 23:36:37 +03:00
Vitaliy Filippov
a0cae4c180
Rename "jerasure" to "ec" in pool configuration, function names, fix documentation and Debian build scripts
...
Old pool configurations with "jerasure" also remain supported as an alias for "ec"
2022-06-03 15:40:00 +03:00
Vitaliy Filippov
c4eb46600d
Merge run_3osds and run_7osds scripts
2022-06-03 01:56:36 +03:00
Vitaliy Filippov
21b306e25f
Add ISA-L support
2022-06-02 01:47:33 +03:00
Vitaliy Filippov
d8313e939a
Release 0.7.0
...
- Add documentation! :-) in Russian and English
- Implement an NFS proxy for file-based access emulation to Vitastor
images for non-QEMU based hypervisors like VMWare, as a better way
than iSCSI
- Implement "primary affinity tags"
- Add a patch for libvirt 6.0
- Fix free_down_raw in cli status
- Fix a rare bug where OSDs could drop unrelated connections on errors
2022-05-29 23:39:53 +03:00
Vitaliy Filippov
82b9f4c52d
Add a test with OSD kills
2022-05-28 00:51:14 +03:00
Vitaliy Filippov
2bdf415eb3
Fix unknown OSD numbers on error
2022-05-28 00:51:14 +03:00
Vitaliy Filippov
f826831282
Describe OSD placement tree and reweights
2022-05-17 10:42:11 +03:00
Vitaliy Filippov
5d47bbe04c
Add documentation
2022-05-17 01:10:49 +03:00
Vitaliy Filippov
93a9f1ef89
Fix NFS socket read hangs
2022-05-11 21:06:56 +03:00
Vitaliy Filippov
2697aae909
Fix free_down_raw in cli status
2022-05-11 18:08:45 +03:00