Vitaliy Filippov
0daa8ea39b
Support seamless upgrade to new PG config and stats etcd key names
2024-07-31 01:15:37 +03:00
Vitaliy Filippov
5b0aebada4
Rename /config/pgs to /pg/config and /pg/stats/* to /pgstats/*
2024-07-31 01:15:37 +03:00
Vitaliy Filippov
8d79d59964
Update antietcd to 1.1.0
2024-07-20 02:15:48 +03:00
Vitaliy Filippov
551a209a50
Fix persistence filter initialization
2024-07-20 02:15:48 +03:00
Vitaliy Filippov
06cafd7702
Do not merge config an extra unneeded time
2024-07-20 02:15:48 +03:00
Vitaliy Filippov
3018352443
Fix clustered Antietcd support
2024-07-19 18:58:58 +03:00
Vitaliy Filippov
e898335b8d
Release 1.7.1
...
Some stupid hotfixes for 1.7.0 :)
- Fix NFS mount
- Fix modify-osd
- Fix use_antietcd not taken from /etc
2024-07-16 00:07:03 +03:00
Vitaliy Filippov
7a13f85ae2
Fix mon config merge
2024-07-15 16:25:22 +03:00
Vitaliy Filippov
989d73f874
Release 1.7.0
...
Omnidirectional release
New features:
- Support handling TCP I/O in simple separate io_uring-based [I/O threads](https://git.yourcmc.ru/vitalif/vitastor/src/branch/master/docs/config/client.en.md#client_iothread_count ) - may increase linear performance to 7-8 GB/s
- Experimental internal etcd replacement - [antietcd](https://git.yourcmc.ru/vitalif/vitastor/src/branch/master/docs/config/monitor.en.md#use_antietcd )
- Monitor now has a [built-in Prometheus exporter](https://git.yourcmc.ru/vitalif/vitastor/src/branch/master/docs/config/monitor.en.md#enable_prometheus )
- Added a reference [Grafana dashboard](https://git.yourcmc.ru/vitalif/vitastor/src/branch/master/mon/scripts/Vitastor-Grafana-6+.json )
- Implement vitastor-cli [osd-tree](https://git.yourcmc.ru/vitalif/vitastor/src/branch/master/docs/usage/cli.en.md#osd-tree ) and [ls-osd](https://git.yourcmc.ru/vitalif/vitastor/src/branch/master/docs/usage/cli.en.md#ls-osd ) commands
- Implement vitastor-cli [modify-osd](https://git.yourcmc.ru/vitalif/vitastor/src/branch/master/docs/usage/cli.en.md#modify-osd ) command
- Implement vitastor-cli [pg-list](https://git.yourcmc.ru/vitalif/vitastor/src/branch/master/docs/usage/cli.en.md#pg-list ) command
- Implement [VitastorFS defragmentation](https://git.yourcmc.ru/vitalif/vitastor/src/branch/master/docs/usage/nfs.en.md#defrag )
- Implement basic node.js binding (not published on npm yet)
Changes:
- Make immediate_commit=all the default everywhere to match default vitastor-disk behaviour
- Make pool-create error message more obvious and add details to it
- Set default etcd_ws_keepalive_interval to 5 seconds (speedup client etcd failover)
- Support OpenStack 2023.2 in Nova and Cinder drivers/patches
- Add patches for libvirt 10.x
- Add patches for QEMU 8.2 and 9.0
- Implement internal restart / run_forever in monitor
- Some source tree refactoring - sources are now moved into subdirectories, monitor is now split into multiple files
- Add vitastor_c_inode_get_immediate_commit in vitastor_c client library
- Make vitastor_kv.h header public
Bug fixes:
- Fix total statistics usec/count/bytes not being reported when delta (bps/iops/lat) is zero
- Prevent infinite loop in NFS on files with incorrect metadata pointing to an empty volume
- Fix READDIR offsets (cookies) in VitastorFS sometimes leading to client infinite loops when reading a directory
- Fix a rare infinite loop during OSD journal flushing (OSD hanging and eating 100 % CPU)
- Fix several bugs which could lead to lost writes in setups without immediate_commit:
- Client library treated writes as completed before actually completing them, thus missing them in a subsequent fsync
- Client library didn't repeat writes on the new PG primary when it changed
- OSDs didn't drop peer connections with dirty writes when stopping PG
- Fix Block Pseudo-FS initialization leading to ENOENTs some time after start
- Fix vitastor-cli merge-based commands (merge/flatten/rm snapshot) slowing down and finally failing when using CAS optimistic locks
- Fix pool create/modify --block_size validation
- Fix TTL comparison for determining failed lease/keepalive requests in OSD
- Add support for size suffixes in pool-create --block_size and --immediate_commit values
2024-07-15 11:48:35 +03:00
Vitaliy Filippov
23f9273ba3
Take use_antietcd setting from /etc/vitastor/vitastor.conf too
2024-07-15 02:02:56 +03:00
Vitaliy Filippov
1254d5a0de
Fix delta stats when counters may be hypothetically reset
2024-07-14 13:11:00 +03:00
Vitaliy Filippov
17a909ea3a
Stop metrics/future API HTTP server when closing Monitor instance
2024-07-14 11:16:41 +03:00
Vitaliy Filippov
26426dd95e
Return it back, but fix stats in another way
2024-07-13 19:14:34 +03:00
Vitaliy Filippov
20057defbe
Revert 8ad63465cd
2024-07-13 15:34:34 +03:00
Vitaliy Filippov
8973982570
Delete keys from internal state instead of setting them to null on DELETE event in mon
2024-07-12 16:42:21 +03:00
Vitaliy Filippov
d88ab76636
Fix active mon stat
2024-07-11 01:34:59 +03:00
Vitaliy Filippov
c010a0aa54
Fix OSD "local write" latency sum
2024-07-11 01:30:03 +03:00
Vitaliy Filippov
0d42712d29
Fix refresh in dashboard variable
2024-07-11 01:13:02 +03:00
Vitaliy Filippov
0487b3b239
Add clusterid to Grafana dashboard
2024-07-09 15:58:03 +03:00
Vitaliy Filippov
c6be194508
Implement experimental antietcd-based version of monitor
2024-07-09 13:54:58 +03:00
Vitaliy Filippov
df668286fb
Add Grafana dashboard
2024-07-09 02:39:36 +03:00
Vitaliy Filippov
667c5999c9
Report all PG states
2024-07-08 19:52:56 +03:00
Vitaliy Filippov
8ad63465cd
Do not wipe previous metrics at moments when difference is 0
2024-07-08 02:20:12 +03:00
Vitaliy Filippov
976290e6a9
Implement built-in Prometheus exporter in monitor
2024-07-08 02:20:12 +03:00
Vitaliy Filippov
79f1d1969b
Make immediate_commit=all the default
2024-07-07 11:45:18 +03:00
Vitaliy Filippov
6501abc060
Set default etcd_ws_keepalive_interval to 5
2024-06-08 00:38:48 +03:00
Vitaliy Filippov
1228403e74
Implement internal restart / run_forever in monitor
2024-06-08 00:35:18 +03:00
Vitaliy Filippov
4eabebd245
Put all configuration to Mon.config
2024-06-07 00:20:38 +03:00
Vitaliy Filippov
cf60b6818c
Extract PG generation into pg_gen.js
2024-06-05 11:22:06 +03:00
Vitaliy Filippov
1a4a7cdc37
Extract OSD Tree generation functions to osd_tree.js
2024-06-05 11:19:35 +03:00
Vitaliy Filippov
1b48085e21
Extract remote etcd interaction to etcd_adapter.js
2024-06-05 11:19:35 +03:00
Vitaliy Filippov
a71847244e
Rename PGUtil.js to pg_utils.js
2024-06-05 10:51:20 +03:00
Vitaliy Filippov
848c2d2722
Move LPOptimizer, DSL and tests to lp_optimizer/
2024-06-05 10:51:20 +03:00
Vitaliy Filippov
86832dc43f
Add eslint import/no-unresolved
2024-06-05 10:51:20 +03:00
Vitaliy Filippov
1f6da79463
Extract stats calculation into a separate file
2024-06-05 10:51:20 +03:00
Vitaliy Filippov
a0305b5b4a
Extract pool configuration validation into a separate file
2024-06-05 02:08:08 +03:00
Vitaliy Filippov
1546f8e447
Extract etcd data "schema" into a separate file
2024-06-05 02:07:53 +03:00
Vitaliy Filippov
8ce962b312
Move scripts
2024-06-05 02:07:53 +03:00
Vitaliy Filippov
23a9aa93b5
Fix pool create/modify --block_size validation
2024-05-04 16:33:22 +03:00
Vitaliy Filippov
9301c857b1
Release 1.6.1
...
A bunch of monitor fixes
- Add noout flag for OSDs (/vitastor/config/osd/xx)
- Fix "effective" size of degraded PGs (and thus "used space") calculation in monitor
- Fix monitor not clearing PGs of deleted pools
- Fix incorrect PG generation with hosts with 0 OSDs
- Fix monitor crashing during primary OSD recheck when pool has no PGs
- Fix monitor crashing when node_placement included non-existing OSDs
- Fix possible data movement after removing OSDs reweighted to 0
- Remove extra empty keys from pool configurations created by vitastor-cli create-pool
- Fix 32-bit build
2024-04-22 02:01:29 +03:00
Vitaliy Filippov
87f666d2a2
Filter out OSDs reweighted to 0
2024-04-20 02:03:53 +03:00
Vitaliy Filippov
bd7fe4ef8f
Filter out non-existing OSDs added in node_placement
2024-04-20 02:03:36 +03:00
Vitaliy Filippov
1b3f9a1416
Do not set non-existing OSD weight to 0, we'll remove them instead
2024-04-20 02:03:11 +03:00
Vitaliy Filippov
a7b7354f38
Do not recheck primary distribution when pool has no PGs
2024-04-20 02:02:47 +03:00
Vitaliy Filippov
765befa22f
Remove empty nodes from tree because PG DSL expects that all leaf nodes are OSDs
2024-04-20 02:02:28 +03:00
Vitaliy Filippov
87b3ab94fe
Do not disable require-atomic-updates and no-unused-vars
2024-04-20 02:02:13 +03:00
Vitaliy Filippov
2c0801f6e4
Configure ESLint and add it to CI
2024-04-16 02:39:31 +03:00
Vitaliy Filippov
fd83fef1d9
Fix pool deletion
2024-04-16 02:20:26 +03:00
Vitaliy Filippov
8d1067971b
Fix pg_effsize (and thus "used space") calculation in monitor
2024-04-16 02:20:18 +03:00
Vitaliy Filippov
ae5af04fde
Add noout flag for OSDs
2024-04-16 02:19:55 +03:00