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
918e1f83b0
Add JSON output for ls-osd
2024-07-07 02:24:36 +03:00
Vitaliy Filippov
abbba6ade4
Support handling TCP I/O in simple separate io_uring-based I/O threads
...
Required mainly for clients, allows to scale parallel client I/O with TCP
from 100-150k iops to ~400k iops and from 2-3 GB/s to at least 7-8 GB/s
with 4 I/O threads, at the same time increasing Q=1 latency by 2x thread
switching delay, which is ~10 us when CPU powersaving is disabled and may
be as high as 200 us when it's enabled.
2024-07-04 13:29:20 +03:00
Vitaliy Filippov
21d1171ba4
Fix parsing after "slightly decopypasting" :)
2024-06-29 00:09:30 +03:00
ace and Vitaliy Filippov
8f83086889
Nova and cinder driver patches for OpenStack 2023.2
2024-06-28 00:04:57 +03:00
Vitaliy Filippov
ceb18f25db
Add libvirt 10.0 patch (same as 9.10 and 10.4 actually)
2024-06-28 00:03:46 +03:00
Vitaliy Filippov
ed51a89f70
Add QEMU 8.2 and 9.0 patches
2024-06-27 12:33:16 +03:00
Vitaliy Filippov
f59456f22d
Add libvirt 10.4 patch (same as 9.10 actually)
2024-06-27 01:35:29 +03:00
Vitaliy Filippov
ca63cd507d
Fix possible infinite loop in flusher (surprisingly reproduced in test_write.sh with iothreads)
2024-06-27 00:38:01 +03:00
Vitaliy Filippov
ea0d72289c
Treat copied buffers as written only after completing the write in client
...
SYNC operation fsyncs only completed operations, so treating writes as "eligible
for fsync" before actually completing them is incorrect
It affected SCHEME=ec test_heal.sh (with immediate_commit=none) test - it was
flapping with lost writes - some non-fsynced writes were legitimately lost by
the OSD, but weren't repeated by the client
2024-06-20 02:11:53 +03:00
Vitaliy Filippov
e400a851f4
Repeat dirty buffer flushes on any PG primary change because the new primary may not know about unfinished operations of the old primary
2024-06-19 00:28:26 +03:00
Vitaliy Filippov
0fec7a9fea
Drop dirty peer connections also when stopping PG to guarantee that clients do not miss fsync
2024-06-19 00:28:26 +03:00
Vitaliy Filippov
b9de2a92a9
Print OSD performance stats
2024-06-17 13:02:58 +03:00
Vitaliy Filippov
5360a70853
Make OSD also report derived stats
2024-06-17 13:02:52 +03:00
Vitaliy Filippov
4c2328eb13
Implement ls-osd command
2024-06-17 02:22:14 +03:00
Vitaliy Filippov
313daef12d
Slightly decopypaste etcd key parsing
2024-06-17 01:38:42 +03:00
Vitaliy Filippov
ad9c12e1b9
Fix Pseudo-FS initialization leading to ENOENTs some time after start
2024-06-16 23:43:09 +03:00
Vitaliy Filippov
4473eb5512
Fix slow & failing CAS layer merge
2024-06-14 02:15:49 +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
9bf57c3760
Mention generic Toshiba MG instead of specific MGxx, fix russian vitastorfs link
2024-06-05 02:08:09 +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
50e56b3b92
Add vitastor_c_inode_get_immediate_commit
2024-05-19 01:57:18 +03:00
Vitaliy Filippov
a12d328793
Rename cli/ to cmd/, fix cmake install
2024-05-15 23:04:50 +03:00
Vitaliy Filippov
c79b38bd26
Move all sources to subdirs
2024-05-15 11:06:01 +03:00
Vitaliy Filippov
44692d148a
Make vitastor_kv.h header public
2024-05-15 01:49:38 +03:00
Vitaliy Filippov
ba52359611
Fix last master commit
2024-05-15 01:49:31 +03:00
Vitaliy Filippov
23a9aa93b5
Fix pool create/modify --block_size validation
2024-05-04 16:33:22 +03:00
Vitaliy Filippov
2412d9e239
Fix TTL comparison for lease/keepalive
2024-04-30 01:53:05 +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
v1.6.1
2024-04-22 02:01:29 +03:00
Vitaliy Filippov
3094358ec2
Fix autovivification leading to extra empty keys in pool-create
2024-04-20 02:04:09 +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