Commit Graph

914 Commits

Author SHA1 Message Date
Thomas Schoebel-Theuer 706b003fef marsadm: fix race between invalidate and emergency 2021-06-22 11:07:53 +02:00
Thomas Schoebel-Theuer 7250c6c828 marsadm: fix annoying warning 2021-04-19 10:27:09 +02:00
Thomas Schoebel-Theuer eb86a4e275 marsadm: silence warning on fresh resource directories 2021-04-19 10:27:09 +02:00
Thomas Schoebel-Theuer 6d2f5dbef2 marsadm: silence warning on deactivated systemd units 2021-04-19 10:27:09 +02:00
Thomas Schoebel-Theuer b853a5843d marsadm: fix detection of compat deletions 2021-04-19 10:27:09 +02:00
Thomas Schoebel-Theuer 084d62d31a marsadm: fix typo 2021-04-19 10:27:09 +02:00
Thomas Schoebel-Theuer 31491f8624 marsadm: silence annoying warning at cron 2021-04-19 10:27:09 +02:00
Thomas Schoebel-Theuer 421995b3fb marsadm: first try /usr/bin/getent before DNS lookup 2021-02-06 15:22:24 +01:00
Thomas Schoebel-Theuer 1a63045f3e marsadm: use systemctl --job-mode=fail 2021-01-06 17:16:35 +01:00
Thomas Schoebel-Theuer fe0b212ab6 marsadm: indirect daemon-reload.service 2021-01-06 17:16:17 +01:00
Thomas Schoebel-Theuer d47b57122d marsadm: systemctl retry 2021-01-06 17:15:34 +01:00
Thomas Schoebel-Theuer 3528dde020 marsadm: silence annoying warning 2021-01-06 17:06:53 +01:00
Thomas Schoebel-Theuer 0c4f1eeb9f marsadm: add forgotten LOOP 2021-01-06 17:06:53 +01:00
Thomas Schoebel-Theuer 34061f9d59 marsadm: purge any left-over generator remains 2021-01-06 17:06:53 +01:00
Thomas Schoebel-Theuer b70f579da5 marsadm: fix typo in activate_resource 2021-01-06 17:06:53 +01:00
Thomas Schoebel-Theuer b26576bfa8 marsadm: speedup template file reading 2021-01-06 17:06:53 +01:00
Thomas Schoebel-Theuer 34336089d8 marsadm: fix help in the presence of keywords 2021-01-06 17:06:53 +01:00
Thomas Schoebel-Theuer aaba8f5063 marsadm: automatic local systemd-trigger 2021-01-06 17:06:53 +01:00
Thomas Schoebel-Theuer f223c703c8 marsadm: less template generation 2021-01-06 17:06:53 +01:00
Thomas Schoebel-Theuer 07f7f8a9db marsadm: separate global from per-resource 2021-01-06 17:06:53 +01:00
Thomas Schoebel-Theuer 4179d66d74 marsadm: remove systemd locking 2021-01-06 17:06:53 +01:00
Thomas Schoebel-Theuer 600c02322f marsadm: per-resource template generation 2021-01-06 17:06:53 +01:00
Thomas Schoebel-Theuer 18ccce69cd marsadm: more debugging msg 2021-01-06 17:06:53 +01:00
Thomas Schoebel-Theuer ad7f81bc42 marsadm: better name systemd_unit_enabled 2021-01-06 17:06:53 +01:00
Thomas Schoebel-Theuer a766d93864 marsadm: faster mtime check 2021-01-06 17:06:53 +01:00
Thomas Schoebel-Theuer e9c9f525e0 marsadm: lockless atomic template generation 2021-01-06 17:06:53 +01:00
Thomas Schoebel-Theuer ebae3fb7c3 marsadm: timeout any hanging systemctl processes 2021-01-06 17:06:53 +01:00
Thomas Schoebel-Theuer 2661f8ab94 marsadm: speedup transitive template generation 2021-01-06 17:06:53 +01:00
Thomas Schoebel-Theuer 63b5a195f5 marsadm: primary separate trigger phase 2021-01-06 17:06:53 +01:00
Thomas Schoebel-Theuer 0ed1325dd8 marsadm: split delete-resource into phases 2021-01-06 17:06:53 +01:00
Thomas Schoebel-Theuer 32c703f59b marsadm: leave-resource separate systemd-trigger 2021-01-06 17:06:53 +01:00
Thomas Schoebel-Theuer 4d8d79881c marsadm: split set-systemd-want into phases 2021-01-06 17:06:53 +01:00
Thomas Schoebel-Theuer ff1a89bc1b marsadm: split set-systemd-unit into phases 2021-01-06 17:06:53 +01:00
Thomas Schoebel-Theuer 0c3e7682ba marsadm: automatic systemd parallelization 2021-01-06 17:06:53 +01:00
Thomas Schoebel-Theuer 3907caf08b marsadm: shortcut set-systemd-want 2021-01-06 17:06:53 +01:00
Thomas Schoebel-Theuer ee9e355600 marsadm: avoid exhaustive template search 2021-01-06 17:06:53 +01:00
Thomas Schoebel-Theuer f5435ee5ce marsadm: less speaky template generation 2021-01-06 17:06:53 +01:00
Thomas Schoebel-Theuer fcad02e977 marsadm: skip predefined units 2021-01-06 17:06:53 +01:00
Thomas Schoebel-Theuer bd2622e484 marsadm: parallelize systemctl start/stop 2021-01-06 17:06:53 +01:00
Thomas Schoebel-Theuer 76f39927d3 marsadm: force template generation upon resource changes 2021-01-06 17:06:53 +01:00
Thomas Schoebel-Theuer cceaa3a5f4 marsadm: less speaky actions 2021-01-06 17:06:53 +01:00
Thomas Schoebel-Theuer 7107e060ac marsadm: remove disturbing is_systemd_generate_necessary 2021-01-06 17:06:53 +01:00
Thomas Schoebel-Theuer 4180741c92 marsadm: skip template instantiation on mtime check 2021-01-06 17:06:53 +01:00
Thomas Schoebel-Theuer e5602bf4f0 marsadm: factor out _get_file 2021-01-06 17:06:53 +01:00
Thomas Schoebel-Theuer f042972ee5 marsadm: split systemd unit and script directories 2021-01-06 17:06:53 +01:00
Thomas Schoebel-Theuer 11976c261b marsadm: set-systemd-unit DEFAULT markers etc 2021-01-06 17:06:52 +01:00
Thomas Schoebel-Theuer c1738680cd marsadm: fix get-systemd-unit empty string 2021-01-06 17:06:52 +01:00
Thomas Schoebel-Theuer b390bd7079 marsadm: skip systemd-trigger when called by cm3 & co
Stay away, avoid infinite recursion etc.
2021-01-06 17:06:52 +01:00
Thomas Schoebel-Theuer ecca5f51cb marsadm: allow directly executable .script templates 2021-01-06 17:06:42 +01:00
Thomas Schoebel-Theuer f03ae66c52 marsadm: removed deprecated template fingerprinting 2020-12-22 09:43:08 +01:00
Thomas Schoebel-Theuer 9228bb7e36 marsadm: add header to generated systemd units 2020-12-22 09:43:08 +01:00
Thomas Schoebel-Theuer fd83afcb46 marsadm: move filename substitution code 2020-12-22 09:43:08 +01:00
Thomas Schoebel-Theuer 1aec029792 marsadm: dynamic programming on template instantiation 2020-12-22 09:43:08 +01:00
Thomas Schoebel-Theuer 8846b48f74 marsadm: rework template activation 2020-12-22 09:43:08 +01:00
Thomas Schoebel-Theuer 8de93db03a marsadm: remove deprecated want_host_path 2020-12-22 09:43:08 +01:00
Thomas Schoebel-Theuer 3fa0421365 marsadm: fix race on system lock breaks 2020-12-22 09:43:08 +01:00
Thomas Schoebel-Theuer c27441325d marsadm: new option --systemd-enable 2020-12-22 09:43:08 +01:00
Thomas Schoebel-Theuer 924abf9f42 marsadm: factor out systemd reporting 2020-12-22 09:43:08 +01:00
Thomas Schoebel-Theuer 601f378cd7 marsadm: workaround unimplemented AT_SYMLINK_NOFOLLOW and undef at utime() 2020-12-22 09:43:08 +01:00
Thomas Schoebel-Theuer 136dcae0ba marsadm: safeguard return at resize 2020-12-22 09:43:08 +01:00
Thomas Schoebel-Theuer bcfcf25a31 marsadm: safeguard return at invalidate 2020-12-22 09:43:08 +01:00
Thomas Schoebel-Theuer 22269a19bd marsadm: safeguard return at primary 2020-12-22 09:43:08 +01:00
Thomas Schoebel-Theuer 7a18d1ab9e marsadm: safeguard return at fake-sync 2020-12-22 09:43:08 +01:00
Thomas Schoebel-Theuer 0afde44073 marsadm: safeguard return at up 2020-12-22 09:43:08 +01:00
Thomas Schoebel-Theuer dcb60eaef3 marsadm: safeguard return at attach 2020-12-22 09:43:08 +01:00
Thomas Schoebel-Theuer 2561800e68 marsadm: safeguard return at cron 2020-12-22 09:43:08 +01:00
Thomas Schoebel-Theuer 75807a287c marsadm: safeguard return at leave-resource 2020-12-22 09:43:08 +01:00
Thomas Schoebel-Theuer 51fafadbb3 marsadm: fix transitive dependency keywords 2020-12-22 09:43:05 +01:00
Thomas Schoebel-Theuer ee058015ee marsadm: fix safe_touch 2020-12-22 08:58:02 +01:00
Thomas Schoebel-Theuer ef9c07b7d1 marsadm: fix set-systemd-unit 2020-12-22 08:58:02 +01:00
Thomas Schoebel-Theuer 29482a5c68 marsadm: document idea behind transitive closure computation 2020-12-22 08:58:02 +01:00
Thomas Schoebel-Theuer bd5b2ef885 marsadm: skip unnecessary template checks 2020-12-22 08:58:02 +01:00
Thomas Schoebel-Theuer dcdf848933 marsadm: fix missing dir /mars/userspace 2020-12-22 08:58:02 +01:00
Thomas Schoebel-Theuer f12ea371f9 marsadm: fix failover with systemd 2020-12-22 08:58:02 +01:00
Thomas Schoebel-Theuer cde7133356 marsadm: minor update command description 2020-11-29 17:41:22 +01:00
Thomas Schoebel-Theuer a48dcca14d marsadm: new commands {de,}activate-guest 2020-11-29 17:41:06 +01:00
Thomas Schoebel-Theuer 4cae329dc9 marsadm: speedup join-resource on non-reachable peers 2020-11-27 23:17:25 +01:00
Thomas Schoebel-Theuer 4e6ef0751b marsadm: fix annoying warning 2020-11-27 23:17:25 +01:00
Thomas Schoebel-Theuer 6fed821b6e marsadm: carefully shortcut self-waiting 2020-11-27 23:17:24 +01:00
Thomas Schoebel-Theuer 74f0da534b marsadm: fix join-cluster dir creation 2020-11-27 21:04:04 +01:00
Thomas Schoebel-Theuer 94df66a3c1 marsadm: fix too strong race detection 2020-11-26 11:40:11 +01:00
Thomas Schoebel-Theuer feb0540224 marsadm: fix typo 2020-11-12 05:37:17 +01:00
Thomas Schoebel-Theuer 30730e4a50 marsadm: safeguard races on log-purge-res 2020-11-10 16:04:01 +01:00
Thomas Schoebel-Theuer 54226c78a7 marsadm: safeguard purge of recent logfiles 2020-11-10 16:04:01 +01:00
Thomas Schoebel-Theuer 6020414d25 marsadm: safeguard deletion of recent logfiles 2020-11-10 16:04:01 +01:00
Thomas Schoebel-Theuer f871eb9514 marsadm: safeguard deletion of last logfile 2020-11-10 16:04:01 +01:00
Thomas Schoebel-Theuer e9e5c1a1da marsadm: safeguard logrotate --force 2020-11-10 16:04:01 +01:00
Thomas Schoebel-Theuer dc1e778abb marsadm: safeguard race between split-brain log-deletes 2020-11-10 16:04:01 +01:00
Thomas Schoebel-Theuer 54cb4605d0 all: bump versions 2020-11-10 16:04:01 +01:00
Thomas Schoebel-Theuer 3aa037d976 marsadm: push new replay links to primary 2020-11-10 16:04:01 +01:00
Thomas Schoebel-Theuer 69199818c8 marsadm: include probe_dir in transitive closure 2020-11-10 16:04:01 +01:00
Thomas Schoebel-Theuer 1c0e4cf9a9 marsadm: new ssh-less split-cluster method 2020-11-10 16:03:50 +01:00
Thomas Schoebel-Theuer 25cec3526e marsadm: new ssh-less merge-cluster method 2020-11-10 16:02:46 +01:00
Thomas Schoebel-Theuer 9cb9e81310 marsadm: new _push_link_foreign onto foreign IP 2020-11-10 16:02:05 +01:00
Thomas Schoebel-Theuer 9a72f86c60 marsadm: new option --no-ssh 2020-11-07 08:56:09 +01:00
Thomas Schoebel-Theuer 7511ebadcf marsadm: local peer and resource cache 2020-11-07 08:56:09 +01:00
Thomas Schoebel-Theuer 29b22a779f marsadm: check peer activations 2020-11-07 08:56:07 +01:00
Thomas Schoebel-Theuer ab6990593d marsadm: better _get_ip 2020-11-07 08:34:57 +01:00
Thomas Schoebel-Theuer 18319eed23 marsadm: fix parsing of backslash-terminated lines
Suggested-by: dhrmn <notifications@github.com>
2020-11-07 08:25:47 +01:00
Thomas Schoebel-Theuer 70a4aae762 marsadm: primitives {is,todo,nr}-secondary 2020-11-07 08:25:47 +01:00
Thomas Schoebel-Theuer 7427478957 marsadm: primitives wait-{is,todo}-{primary,secondary}-{on,off} 2020-11-07 08:25:47 +01:00
Thomas Schoebel-Theuer 461ac8b4cd marsadm: new switch semantics on marsadm primary
Apparently, sysadmins often forget to execute "marsadm up mydata"
(or similar) after a failover.

Recall the failover command sequence:
"marsadm pause-fetch mydata; marsadm primary --force mydata"

Some months later, other sysadmins in the group are stumbling over
the very old "pause-fetch" after a regular planned handover via
"marsadm primary mydata". It works, but the former primary
(which is now secondary) does no longer fetch data, because of the
very old pause-fetch command which was never reverted.

Afterwards, /mars is filling up slowly over a long time.

Somewhen later (e.g. a few days), a monitoring alert "/mars too full"
is happening at midnight, leading to an unnecessary on-duty call.

A different type of monitoring could help, by not only
tracking the filling level of /mars, but also view-todo-fetch or
similar. However, some people dislike this, because there
exist operational use cases (like creation of backups) where pause-fetch
is executed _deliberately_ for a longer time.

Here is a workaround for a forgotten resume-fetch / up after
the first failover:

After the  _original_ "marsadm primary" or "primary --force" has
succeeded by appearance of /dev/mars/mydata, we simply execute
the equivalent of "marsadm up mydata".

This changes the semantics of the "primary" command. Hopefully
no scripts on this world will break.
2020-11-07 08:25:47 +01:00
Thomas Schoebel-Theuer 08c41805ec marsadm: purge any left-over probe dirs 2020-11-07 08:25:47 +01:00
Thomas Schoebel-Theuer 838b85c508 marsadm: global purge at cron 2020-11-07 08:25:47 +01:00
Thomas Schoebel-Theuer 93ef671cf3 marsadm: global purge at link-purge-all 2020-11-07 08:25:47 +01:00
Thomas Schoebel-Theuer 4d05bb3796 marsadm: split up link_purge_global 2020-11-07 08:25:47 +01:00
Thomas Schoebel-Theuer bd5412d4f5 marsadm: fix version detection for gone members 2020-11-07 08:25:47 +01:00
Thomas Schoebel-Theuer 5b1ca6773a marsadm: safeguard missing old deletions 2020-11-07 08:25:47 +01:00
Thomas Schoebel-Theuer 533b13b3df marsadm: fix initial join-resource on slow metadata communication 2020-11-07 08:25:47 +01:00
Thomas Schoebel-Theuer c3585565be marsadm: fix join-cluster on unknown peer 2020-11-07 08:25:47 +01:00
Thomas Schoebel-Theuer 1dd31c1285 marsadm: only ask myself upon self wait-cluster 2020-11-07 08:25:47 +01:00
Thomas Schoebel-Theuer 90947c1b14 marsadm: fix wait-cluster race abort 2020-11-07 08:25:47 +01:00
Thomas Schoebel-Theuer 72cbf7b8be marsadm: skip unnecessary wait-cluster restart 2020-11-07 08:01:07 +01:00
Thomas Schoebel-Theuer b2cd7ddf23 marsadm: clear any local caches 2020-10-28 06:09:11 +01:00
Thomas Schoebel-Theuer d3acf3f9c8 marsadm: fix join-cluster missing dirs 2020-10-28 06:09:11 +01:00
Thomas Schoebel-Theuer c9b7fcf7f9 marsadm: safeguard join-resource endless loop 2020-10-28 06:09:11 +01:00
Thomas Schoebel-Theuer e3ebc5762b marsadm: view disk-error 2020-09-30 14:24:27 +02:00
Thomas Schoebel-Theuer 26b40474cb marsadm: re-activate any forgotten fetch on handover 2020-09-21 14:40:48 +02:00
Thomas Schoebel-Theuer ed95e24496 marsadm: allow leave-resource --force on empty resource 2020-09-19 17:42:34 +02:00
Thomas Schoebel-Theuer ae2668b265 marsadm: hint admins on --ignore-sync 2020-09-18 17:45:57 +02:00
Thomas Schoebel-Theuer 23748272ca marsadm: remove stray nonsense 2020-09-18 17:45:57 +02:00
Thomas Schoebel-Theuer 87064c1c5a marsadm: fix primitive disk-present 2020-09-10 11:21:38 +02:00
Thomas Schoebel-Theuer 11792c250e marsadm: remove annoying doubled error code 2020-09-05 23:08:30 +02:00
Thomas Schoebel-Theuer 60baf9c378 marsadm: fix old deletions max_nr detection 2020-09-05 23:06:38 +02:00
Thomas Schoebel-Theuer 24bb735d5a marsadm: report summary on non-reachable non-member hosts 2020-09-03 16:29:55 +02:00
Thomas Schoebel-Theuer 2dbc0769d0 marsadm: old deletion method must ignore non-members 2020-09-03 16:29:55 +02:00
Thomas Schoebel-Theuer 3a727a04b7 marsadm: use ssh-free push at lowlevel-delete-host 2020-09-03 16:29:55 +02:00
Thomas Schoebel-Theuer 1e30e0c945 marsadm: use ssh-free push at lowlevel-set-host-ip 2020-09-03 16:29:55 +02:00
Thomas Schoebel-Theuer f9044fc9bf marsadm: workaround versionlink appearance race with log-rotate 2020-09-03 16:29:55 +02:00
Thomas Schoebel-Theuer ac689b8640 marsadm: workaround race with primary logrotate 2020-09-03 16:29:55 +02:00
Thomas Schoebel-Theuer 80f18138d3 marsadm: now simplify get_alive_links() 2020-09-03 16:29:55 +02:00
Thomas Schoebel-Theuer bcc1a63318 marsadm: new concept guest members 2020-09-03 16:29:55 +02:00
Thomas Schoebel-Theuer 2180337e85 marsadm: avoid old rsync method at join-resource 2020-09-03 16:29:55 +02:00
Thomas Schoebel-Theuer aecccd547c marsadm: unify naming of versionlink 2020-09-03 16:29:55 +02:00
Thomas Schoebel-Theuer c7983a6fb6 marsadm: purge stray and/or transient guest links 2020-09-03 16:29:55 +02:00
Thomas Schoebel-Theuer 6d2091eb8e marsadm: add --keep-backups for alivelink purge 2020-09-03 16:29:55 +02:00
Thomas Schoebel-Theuer 8cddbc1851 marsadm: do not delete versionlinks during ongoing join-resource 2020-09-01 19:35:10 +02:00
Thomas Schoebel-Theuer 6750a4fc63 marsadm: join-resource needs preliminary guest-like activation 2020-09-01 19:35:10 +02:00
Thomas Schoebel-Theuer 019b991cda marsadm: earlier device check at {create,join}-resource 2020-09-01 19:35:10 +02:00
Thomas Schoebel-Theuer 3deaa91ba9 marsadm: fix non-generic timestamp override 2020-09-01 19:35:10 +02:00
Thomas Schoebel-Theuer eddddd5fcd marsadm: fix single-resource phased ldie 2020-09-01 19:35:10 +02:00
Thomas Schoebel-Theuer e71faba173 marsadm: fix invalid subtraction in corner case 2020-08-12 08:56:48 +02:00
Thomas Schoebel-Theuer d4c64f60fd marsadm: safeguard race on readlink 2020-08-12 08:56:48 +02:00
Thomas Schoebel-Theuer 89b647a261 marsadm: silence compat warning 2020-08-12 08:56:48 +02:00
Thomas Schoebel-Theuer 859c208835 marsadm: silence warnings 2020-08-12 08:56:47 +02:00
Thomas Schoebel-Theuer 58a5537d0a marsadm: purge historic links 2020-08-02 13:21:29 +02:00
Thomas Schoebel-Theuer a6167603ad marsadm: adjust report to masses of peers 2020-08-02 13:21:29 +02:00
Thomas Schoebel-Theuer 62c542bad1 marsadm: fix and speedup detection of common peers 2020-08-02 13:21:29 +02:00
Thomas Schoebel-Theuer 9b618876a7 marsadm: safeguard peer matching 2020-08-02 13:21:29 +02:00
Thomas Schoebel-Theuer 08ee99d304 marsadm: safeguard wait-cluster against illegal timestamps 2020-08-02 13:21:28 +02:00