Dietmar Maurer
c4707d0c1d
depend on proxmox-shared-memory 0.1.1
...
Signed-off-by: Dietmar Maurer <dietmar@proxmox.com >
2021-11-15 11:35:52 +01:00
Dietmar Maurer
24f9af9e0f
add missing file from previous commit
...
Signed-off-by: Dietmar Maurer <dietmar@proxmox.com >
2021-11-14 18:49:29 +01:00
Dietmar Maurer
a0172d766b
traffic-controls: add API/CLI to show current traffic
...
Signed-off-by: Dietmar Maurer <dietmar@proxmox.com >
2021-11-14 17:21:45 +01:00
Dietmar Maurer
09f999337a
update to proxmox-http 0.5.4
...
Signed-off-by: Dietmar Maurer <dietmar@proxmox.com >
2021-11-14 08:27:45 +01:00
Dietmar Maurer
e3eb062c09
cached_traffic_control: fix regression tests
...
Avoid using shared memory in tests because of permission problems.
2021-11-14 08:05:40 +01:00
Dietmar Maurer
de21d4efdc
implement rate limiter in shared memory
...
This kind of rate limiter can be used among several processes (as long
as all set the same rate/burst).
2021-11-13 17:49:38 +01:00
Dietmar Maurer
d5f58006d3
cached_traffic_control: use ShareableRateLimit trait object
2021-11-13 17:49:38 +01:00
Dietmar Maurer
cb80ffc1de
pbs-config: use new SharedMemory helpers from proxmox-shared-memory crate
...
depend on proxmox-shared-memory crate.
Signed-off-by: Dietmar Maurer <dietmar@proxmox.com >
2021-11-13 17:49:38 +01:00
Dietmar Maurer
9e7132c0b3
bump version to 2.0.14-1
2021-11-12 08:12:18 +01:00
Dietmar Maurer
bf013be1c4
create /var/lib/proxmox-bnackup at server startup
...
This was missing in previous patch...
Signed-off-by: Dietmar Maurer <dietmar@proxmox.com >
2021-11-12 08:12:18 +01:00
Dietmar Maurer
b935209584
fix directory permission problems
...
By carefully setting options on all create_path() calls,
and by creating "/var/lib/proxmox-backup" at api server startup.
2021-11-12 07:29:18 +01:00
Dietmar Maurer
efd4ddc17b
debian/control: depend on librust-cidr-dev
2021-11-10 12:23:16 +01:00
Dietmar Maurer
e511e0e553
proxmox-backup-proxy: implement traffic control
...
Signed-off-by: Dietmar Maurer <dietmar@proxmox.com >
2021-11-10 10:15:40 +01:00
Dietmar Maurer
610150a4b4
implement a traffic control cache for fast rate control limiter lockups
...
Signed-off-by: Dietmar Maurer <dietmar@proxmox.com >
2021-11-10 10:15:40 +01:00
Dietmar Maurer
485b2438ac
traffic_control: use Memcom to track. config versions
...
Signed-off-by: Dietmar Maurer <dietmar@proxmox.com >
2021-11-10 10:15:40 +01:00
Dietmar Maurer
bfd12e871f
Add traffic control configuration config with API
...
Signed-off-by: Dietmar Maurer <dietmar@proxmox.com >
2021-11-10 10:15:40 +01:00
Dietmar Maurer
0c136bfab1
DailyDuration: implement time_match()
2021-11-10 10:15:40 +01:00
Dietmar Maurer
245e2aea23
New DailyDuration type with nom parser
...
We will use this to specify timesframes for network rate limits (only
apply limite when inside the time frame).
Note: This is not systemd related, but we can reuse some of the parser
method.
Signed-off-by: Dietmar Maurer <dietmar@proxmox.com >
2021-11-10 10:15:40 +01:00
Dietmar Maurer
b9d588ffde
implement Servive for RateLimitedStream
...
Signed-off-by: Dietmar Maurer <dietmar@proxmox.com >
2021-11-10 10:15:40 +01:00
Dietmar Maurer
e4bc3e0e8d
proxmox-backup-client: add rate/burst parameter to backup CLI
...
Signed-off-by: Dietmar Maurer <dietmar@proxmox.com >
2021-11-10 10:15:40 +01:00
Dietmar Maurer
2419dc0de9
pbs-client: add option to use the new RateLimiter
...
Signed-off-by: Dietmar Maurer <dietmar@proxmox.com >
2021-11-10 10:15:32 +01:00
Dietmar Maurer
68fd9ca6d6
openid_login: vertify that firstname, lastname and email fits our schema definitions
...
If not, we do not copy the values to our user.cfg.
2021-11-10 06:48:40 +01:00
Dietmar Maurer
4beb7d2dbe
correctly lock remote config
...
Signed-off-by: Dietmar Maurer <dietmar@proxmox.com >
2021-11-06 17:35:10 +01:00
Dietmar Maurer
7a356a748a
bump version to 2.0.13-1
...
Signed-off-by: Dietmar Maurer <dietmar@proxmox.com >
2021-10-21 08:36:41 +02:00
Dietmar Maurer
1c402740a2
update dedian/control
...
Signed-off-by: Dietmar Maurer <dietmar@proxmox.com >
2021-10-21 07:59:45 +02:00
Dietmar Maurer
e0a19d3313
use new fsync parameter to replace_file and atomic_open_or_create
...
Depend on proxmox 0.15.0 and proxmox-openid 0.8.1
Signed-off-by: Dietmar Maurer <dietmar@proxmox.com >
2021-10-21 07:28:32 +02:00
Dietmar Maurer
d6473f5359
proxmox-rrd: use fsync instead of syncfs
...
syncfs can sync unrelated data, and we do not want that.
Signed-off-by: Dietmar Maurer <dietmar@proxmox.com >
2021-10-20 11:46:59 +02:00
Dietmar Maurer
f5f9ec81d2
proxmox-rrd: fix regression tests
2021-10-19 18:41:03 +02:00
Dietmar Maurer
fea950155f
proxmox-rrd: improve dev docs
...
Signed-off-by: Dietmar Maurer <dietmar@proxmox.com >
2021-10-19 11:17:09 +02:00
Dietmar Maurer
ef2944bc24
proxmox-rrd: cleanup - impl FromStr for JournalEntry
...
Signed-off-by: Dietmar Maurer <dietmar@proxmox.com >
2021-10-19 11:17:09 +02:00
Dietmar Maurer
934c8724e2
proxmox-rrd: add option to avoid page cache for load/save
...
use fadvice(.., POSIX_FADV_DONTNEED) for RRD files. We read those files only once,
and always rewrite them.
Signed-off-by: Dietmar Maurer <dietmar@proxmox.com >
2021-10-19 11:17:09 +02:00
Dietmar Maurer
98eb435d90
proxmox-rrd: use syncfs after writing rrd files
...
Signed-off-by: Dietmar Maurer <dietmar@proxmox.com >
2021-10-19 11:17:09 +02:00
Dietmar Maurer
7f381a6246
proxmox-rrd: use fine grained locking in commit_journal_impl
...
Aquire the rrd_map lock for each file (else we block access for a long time)
2021-10-18 14:55:47 +02:00
Dietmar Maurer
c17fbbbc07
proxmox-rrd: log all errors from apply_and_commit_journal_thread (but only once)
2021-10-18 11:57:19 +02:00
Dietmar Maurer
d26865c52c
proxmox-rrd: cleanup list_old_journals
2021-10-18 10:00:58 +02:00
Dietmar Maurer
2b05008a11
proxmox-rrd: cleanup - use struct instead of tuple
2021-10-16 12:45:03 +02:00
Dietmar Maurer
45700e2ecf
proxmox-rrd: move RRDMap into extra file
2021-10-16 12:45:03 +02:00
Dietmar Maurer
f84304235b
proxmox-rrd: move JournalState into extra file
2021-10-16 12:45:03 +02:00
Dietmar Maurer
0ca41155b2
proxmox-rrd: implement non blocking journal
...
Do not block while applying the journal.
2021-10-16 12:45:03 +02:00
Dietmar Maurer
a291ab59ba
proxmox-rrd: rename RRDCacheState to JournalState
2021-10-15 09:35:44 +02:00
Dietmar Maurer
fce7cd0d36
proxmox-rrd: avoild blocking readers while applying the journal
...
By using and extra RwLock<RRDMap> on the rrd data.
2021-10-15 09:22:07 +02:00
Dietmar Maurer
658357c5a8
proxmox-rrd: log journal apply/flush times, split apply and flush
...
We need to apply the journal only once.
2021-10-15 07:16:41 +02:00
Dietmar Maurer
7484fce24d
proxmox-rrd: cleanup - use slot_end_time()
2021-10-14 16:29:00 +02:00
Dietmar Maurer
f28a713e2b
proxmox-rrd: cleanup - use staturating_add instead of if/else
2021-10-14 16:10:55 +02:00
Dietmar Maurer
a9017805b7
proxmox-rrd: improve dev docs
2021-10-14 11:53:54 +02:00
Dietmar Maurer
2e3f94e12f
proxmox-rrd: make rrd load callback configurable
2021-10-14 11:41:26 +02:00
Dietmar Maurer
d531c7ae61
proxmox-rrd: add more regression tests
2021-10-14 10:55:12 +02:00
Dietmar Maurer
7df1580fa6
proxmox-rrd: add regression tests and two minor fixes
2021-10-14 10:17:07 +02:00
Dietmar Maurer
58f70bccbb
proxmox-rrd: pass time and value to update function
2021-10-14 08:12:56 +02:00
Dietmar Maurer
fae4f6c509
cleanup: move rrd cache related code into extra file
2021-10-14 07:57:27 +02:00
Dietmar Maurer
ddafb28572
proxmox-rrd: add some integration tests (file format tests)
2021-10-13 18:21:23 +02:00
Dietmar Maurer
b3f279e2d9
use complete_file_name from proxmox-router 1.1
2021-10-13 14:10:02 +02:00
Dietmar Maurer and Thomas Lamprecht
bacc99c7f8
proxmox-rrd: add more commands to the rrd cli tool
...
Signed-off-by: Dietmar Maurer <dietmar@proxmox.com >
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com >
2021-10-13 13:36:02 +02:00
Dietmar Maurer and Thomas Lamprecht
6728d0977b
proxmox-rrd: rename last_counter to last_value
...
Signed-off-by: Dietmar Maurer <dietmar@proxmox.com >
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com >
2021-10-13 13:36:02 +02:00
Dietmar Maurer and Thomas Lamprecht
bff7c027c9
proxmox-rrd: protect against negative update time
...
Signed-off-by: Dietmar Maurer <dietmar@proxmox.com >
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com >
2021-10-13 13:36:02 +02:00
Dietmar Maurer and Thomas Lamprecht
79b3113361
proxmox-rrd: new helpers: slot, slot_start_time & slot_end_time
...
Signed-off-by: Dietmar Maurer <dietmar@proxmox.com >
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com >
2021-10-13 13:36:02 +02:00
Dietmar Maurer and Thomas Lamprecht
5885767b91
proxmox-rrd: avoid expensive modulo (%) inside loop
...
Modulo is very slow, so we try to avoid it inside loops.
Signed-off-by: Dietmar Maurer <dietmar@proxmox.com >
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com >
2021-10-13 13:36:02 +02:00
Dietmar Maurer and Thomas Lamprecht
ec08247e5c
proxmox-rrd: add binary to create/manage rrd files
...
Signed-off-by: Dietmar Maurer <dietmar@proxmox.com >
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com >
2021-10-13 13:36:02 +02:00
Dietmar Maurer and Thomas Lamprecht
400f081487
proxmox-rrd: split out load_rrd (cleanup)
...
Signed-off-by: Dietmar Maurer <dietmar@proxmox.com >
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com >
2021-10-13 13:36:02 +02:00
Dietmar Maurer and Thomas Lamprecht
03664514ab
proxmox-rrd: support CF::Last
...
Signed-off-by: Dietmar Maurer <dietmar@proxmox.com >
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com >
2021-10-13 13:36:02 +02:00
Dietmar Maurer and Thomas Lamprecht
c68fa58a59
remove proxmox-rrd-api-types crate, s/RRDTimeFrameResolution/RRDTimeFrame/
...
Because the types used inside the RRD have other requirements
than the API types:
- other serialization format
- the API may not support all RRD features
Signed-off-by: Dietmar Maurer <dietmar@proxmox.com >
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com >
2021-10-13 13:36:02 +02:00
Dietmar Maurer and Thomas Lamprecht
426dda0730
proxmox-rrd: extract_data: include values from current slot
...
Signed-off-by: Dietmar Maurer <dietmar@proxmox.com >
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com >
2021-10-13 13:36:02 +02:00
Dietmar Maurer and Thomas Lamprecht
eb37d4ece2
proxmox-rrd: remove dependency to proxmox-rrd-api-types
...
Signed-off-by: Dietmar Maurer <dietmar@proxmox.com >
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com >
2021-10-13 13:36:02 +02:00
Dietmar Maurer and Thomas Lamprecht
1198f8d4e6
proxmox-rrd: implement new CBOR based format
...
Storing much more data points now got get better graphs.
Signed-off-by: Dietmar Maurer <dietmar@proxmox.com >
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com >
2021-10-13 13:36:02 +02:00
Dietmar Maurer and Thomas Lamprecht
4b709ade68
proxmox-backup-proxy: use tokio::task::spawn_blocking instead of block_in_place
...
allow the current thread to do some other work in-between
Signed-off-by: Dietmar Maurer <dietmar@proxmox.com >
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com >
2021-10-13 13:36:02 +02:00
Dietmar Maurer and Thomas Lamprecht
fa49d0fde9
RRD_CACHE: use a OnceCell instead of lazy_static
...
And initialize only with proxmox-backup-proxy. Other binaries dont need it.
Signed-off-by: Dietmar Maurer <dietmar@proxmox.com >
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com >
2021-10-13 13:36:02 +02:00
Dietmar Maurer and Thomas Lamprecht
1d44f175c6
proxmox-rrd: use a journal to reduce amount of bytes written
...
Append pending changes in a simple text based format that allows for
lockless appends as long as we stay below 4 KiB data per write.
Apply the journal every 30 minutes and on daemon startup.
Note that we do not ensure that the journal is synced, this is a
perfomance optimization we can make as the kernel defaults to
writeback in-flight data every 30s (sysctl vm/dirty_expire_centisecs)
anyway, so we lose at max half a minute of data on a crash, here one
should have in mind that we normally expose 1 minute as finest
granularity anyway, so not really much lost.
Signed-off-by: Dietmar Maurer <dietmar@proxmox.com >
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com >
2021-10-13 13:36:02 +02:00
Dietmar Maurer
b3a67f1f14
proxmox-rrd: use correct directory options in create_rrdb_dir
2021-10-07 08:50:50 +02:00
Dietmar Maurer
3cc23ca6cc
proxmox-rrd: cleanup error handling
2021-10-07 08:01:12 +02:00
Dietmar Maurer
3def6bfc64
proxmox-rrd: use log crate instead of eprintln, avoid duplicate logs
2021-10-06 18:19:22 +02:00
Dietmar Maurer
18e8bc17e4
proxmox-rrd: fix update (do not update) when time is in the past
2021-10-06 18:01:48 +02:00
Dietmar Maurer
0191759316
proxmox-rrd: improve developer docs
2021-10-06 12:19:54 +02:00
Dietmar Maurer
dbc42e6f75
proxmox-rrd: remove serde dependency
2021-10-06 10:55:46 +02:00
Dietmar Maurer
d1c3bc5350
split out RRD api types into proxmox-rrd-api-types crate
2021-10-06 09:49:51 +02:00
Dietmar Maurer
a97301350f
proxmox-rrd: use create_path instead of std::fs::create_dir_all
...
To ensure correct file ownership.
2021-10-06 08:37:14 +02:00
Dietmar Maurer
09340f28f5
move RRD code into proxmox-rrd crate
2021-10-06 08:13:28 +02:00
Dietmar Maurer
608806e884
proxmox-rest-server: use new ServerAdapter trait instead of callbacks
...
Async callbacks are a PITA, so we now pass a single trait object which
implements check_auth and get_index.
2021-10-05 11:13:10 +02:00
Dietmar Maurer
48176b0a77
proxmox-rest-server: pass owned RestEnvironment to get_index
...
This way we avoid pointers with lifetimes.
2021-10-05 11:12:53 +02:00
Dietmar Maurer
3483a3b3a1
proxmox-rest-server: cleanup, access api_auth using a method
2021-10-05 11:12:53 +02:00
Dietmar Maurer
6680878b5c
proxmox-rest-server: make get_index async
2021-10-01 09:38:10 +02:00
Dietmar Maurer
593043ed53
proxmox-rest-server: add comment why ApiService needs to be 'pub'
2021-10-01 08:35:51 +02:00
Dietmar Maurer
038f385089
proxmox-rest-server: make check_auth async
2021-10-01 07:53:59 +02:00
Dietmar Maurer
b914b94773
proxmox-rest-server: fix spelling errors
2021-10-01 06:43:30 +02:00
Dietmar Maurer
2194bc59c8
proxmox-rest-server: improve ApiService docs
2021-09-30 17:18:47 +02:00
Dietmar Maurer
a98a288e2d
proxmox-rest-server: start module docs
2021-09-30 13:49:29 +02:00
Dietmar Maurer
49e25688f1
rename CommandoSocket to CommandSocket
2021-09-30 12:52:35 +02:00
Dietmar Maurer
0d5d15c9d1
proxmox-rest-server: improve docs
...
And rename enable_file_log to enable_access_log.
2021-09-30 12:29:15 +02:00
Dietmar Maurer
2e44983a37
proxmox-rest-server: improve docs
...
And renames abort_worker_async to abort_worker_nowait (avoid confusion,
because the function itself is not async).
2021-09-30 10:51:41 +02:00
Dietmar Maurer
c76ff4b472
proxmox-rest-server: cleanup FileLogger docs
2021-09-30 10:51:31 +02:00
Dietmar Maurer
e64f77b716
cleanup: move use clause to top
2021-09-30 08:42:37 +02:00
Dietmar Maurer
fd1b65cc3c
proxmox-rest-server: allow to catch SIGINT and SIGHUP separately
...
And make ServerState private.
2021-09-30 08:41:30 +02:00
Dietmar Maurer
11148dce43
proxmox-rtest-server: make Reloader and Reloadable private
2021-09-30 07:44:19 +02:00
Dietmar Maurer
38da8ca1bc
proxmox-rest-server: improve logging
...
And rename server_state_init() into catch_shutdown_and_reload_signals().
2021-09-29 14:48:46 +02:00
Dietmar Maurer
a0ffd4a413
proxmox-rest-server: avoid useless call to request_shutdown
...
Also avoid unsafe code.
2021-09-29 14:37:07 +02:00
Dietmar Maurer
bf95fba72e
remove wrong calls to systemd_notify
...
We alrteady call systemd_notify inside the create_service future.
2021-09-29 12:04:48 +02:00
Dietmar Maurer
d265420025
daemon: simlify code (make it easier to use)
2021-09-29 12:04:48 +02:00
Dietmar Maurer
8cf445ecc4
cleanup: make BoxedStoreFunc private
...
There is no need to export this type.
2021-09-29 09:55:43 +02:00
Dietmar Maurer
99940358e3
ExtJsFormatter: use ParameterError to correctly compute 'errors'
...
By default, 'errors' is now empty.
Depend on proxmox 0.13.5.
2021-09-28 10:19:55 +02:00
Dietmar Maurer
53daae8e89
proxmox-rest-server: cleanup formatter, improve docs
...
Use trait for OutputFormatter. This is functionally equivalent,
but more rust-like...
2021-09-28 07:45:50 +02:00
Dietmar Maurer
8a23ea4656
move src/backup/read_chunk.rs to pbs-datastore/src/local_chunk_reader.rs
2021-09-27 11:10:14 +02:00