Commit Graph

333 Commits

Author SHA1 Message Date
Thomas Schoebel-Theuer
359c039445 marsadm: add new command 'wait-umount' 2013-06-03 09:05:46 +02:00
Thomas Schoebel-Theuer
0953801a6e marsadm: fix primary detection
The actual-*/is-primary symlink may race with the appearance
of the device. Use both conditions to be sure.
2013-06-03 09:05:46 +02:00
Thomas Schoebel-Theuer
2dd3033ff4 marsadm: split command "primary" into phases 2013-06-03 09:05:46 +02:00
Thomas Schoebel-Theuer
dab60da817 marsadm: allow calling multiple functions in phases
Add infrastructure for splitting commands in multiple phases.
Usually, phase0 will check for some preconditions, while
phase1 will execute the command. The final result will only
be committed if nothing fails.

The difference to the old behaviour will only show up when combined
with 'all' resources. If anything fails in phase0, nothing will be
touched in phase1. The old behaviour could touch some resources,
but omit others when something failed.

The new behaviour is more transactional-like.
2013-06-03 09:05:46 +02:00
Thomas Schoebel-Theuer
14e9582e93 marsadm: fix join-resource 2013-05-13 12:50:29 +02:00
Thomas Schoebel-Theuer
4690deb873 marsadm: check attach state 2013-05-13 12:50:29 +02:00
Thomas Schoebel-Theuer
0bab62f434 marsadm: fix detection of incompatible versions 2013-05-13 12:50:29 +02:00
Thomas Schoebel-Theuer
b7c1900820 marsadm: use Lamport time for symlink creation 2013-05-13 12:50:29 +02:00
Thomas Schoebel-Theuer
30f97cd23f light: fix symlink deletion 2013-05-13 12:50:29 +02:00
Thomas Schoebel-Theuer
ca07c9a763 marsadm: fix log-delete{,-all} 2013-05-13 12:50:29 +02:00
Thomas Schoebel-Theuer
77fdc4cc1a marsadm: improve check_* routines 2013-05-13 12:50:29 +02:00
Thomas Schoebel-Theuer
6964573aa3 marsadm: disallow resize to smaller size 2013-05-13 12:50:29 +02:00
Thomas Schoebel-Theuer
b0c09061e9 marsadm: allow only multiples of 4k as size arguments 2013-04-25 22:32:37 +02:00
Thomas Schoebel-Theuer
46f815f54e marsadm: add optional size argument to resize command 2013-04-25 16:06:18 +02:00
Thomas Schoebel-Theuer
8d93439dcb marsadm: add new command 'set-replay' 2013-04-22 14:40:24 +02:00
Thomas Schoebel-Theuer
22f75b9d71 marsadm: rewrite / correct symlink faking 2013-04-22 14:40:24 +02:00
Thomas Schoebel-Theuer
03f418c2c7 marsadm: improve message texts and parameter semantics 2013-04-22 11:50:07 +02:00
Thomas Schoebel-Theuer
8f081105fd marsadm: fix distinction _get_{designated,actual}_primary 2013-04-22 11:48:50 +02:00
Thomas Schoebel-Theuer
109eed06f3 marsadm: fix and unify readlink() usage 2013-04-22 11:48:50 +02:00
Thomas Schoebel-Theuer
78c7c307ea marsadm: fix primary checks 2013-04-22 11:48:50 +02:00
Daniel Hermann
92951e491b marsadm: improve primary/secondary command behaviour
Previously, the 'marsadm primary' and 'marsadm secondary' commands
were successful as soon as the target primary was successfully set
to the new primary or '(none)', respectively.  This commit appends
a check to wait until the primary is really changed (actual state).

Changes in marsadm:
- Added check_primary_settled() function
- Do not use local variable named '$host' in _primary_res() since
  a global variable with same name exists.
- Do not use/set global variable '$host' in primary_res().  Use
  local variable '$new' initially set to '$host' instead.
- Make 'secondary' command idempotent ("is already secondary")
- Call trigger() and check_primary_settled() in primary_res()

Related minor changes:
- marsadm: Added optional parameter 'sleeptime' to sleep_timeout()
- Removed debug output in check_file_aged()

Signed-off-by: Thomas Schoebel-Theuer <tst@1und1.de>
2013-04-18 10:09:15 +02:00
Thomas Schoebel-Theuer
f2b8256fcd marsadm: categorize commands correctly 2013-04-17 12:03:00 +02:00
Thomas Schoebel-Theuer
e02c06e265 marsadm: disallow --force on 'all' resources 2013-04-17 12:03:00 +02:00
Thomas Schoebel-Theuer
9187bf210d marsadm: check for matching version numbers 2013-04-17 11:03:13 +02:00
Thomas Schoebel-Theuer
f5fae8e4ba light: show runtime connection status information 2013-04-12 08:26:25 +02:00
Daniel Hermann
4dafa9467a marsadm: use actual primary where appropriate instead of target primary
The actual primary is decoded in 'actual-*/is-primary' links, while the
target primary is decoded in the 'primary' link.  This is not clearly
taken into account in several functions of marsadm.  This commit fixes
this problem.

- Added _get_actual_primary() function
- Remove $pri parameter in _primary_res
- Use _get_actual_primary() where actual state should be used

Commits 3e96a5e 578d003 5dccbdc rebased to dfeb8e6

Signed-off-by: Thomas Schoebel-Theuer <tst@1und1.de>
2013-04-11 11:01:25 +02:00
Daniel Hermann
3bf3745ec8 marsadm: use lamport clock for checking modification timestamps of symlinks
- Added mars_time() function returning lamport clock
- Renamed check_mtime to check_file_aged and fixed to use mars_time()
- Renamed check_all_mtimes to check_files_modified_any_of

Commits eb849e2 1be8700 fbb415a rebased on dfeb8e6

Signed-off-by: Thomas Schoebel-Theuer <tst@1und1.de>
2013-04-11 11:01:25 +02:00
Daniel Hermann
7a42f95d6c marsadm: renam _allowed_logdelete() to _min_nondeletable_logfile()
Signed-off-by: Thomas Schoebel-Theuer <tst@1und1.de>
2013-04-11 11:01:25 +02:00
Daniel Hermann
5d3d777b86 marsadm: fix check_primary/check_not_primary to use actual state ('is-primary')
The actual state is decoded in 'actual-*/is-primary' links, while the target
state is decoded in the 'primary' link.
- check_primary() now uses actual state
- check_not_primary() now uses both actual state and target state

Commits c38a822 94ac15a rebased on eaba743

Signed-off-by: Thomas Schoebel-Theuer <tst@1und1.de>
2013-04-11 11:01:25 +02:00
Thomas Schoebel-Theuer
eaba743456 light: separate logging of transaction logfile problems 2013-04-09 14:01:07 +02:00
Thomas Schoebel-Theuer
c275bec28d light: new systematics for emergency modes (filesystem full) 2013-04-08 17:02:57 +02:00
Thomas Schoebel-Theuer
3e22a3faca marsadm: role command distincts between actual and todo 2013-04-03 11:44:16 +02:00
Thomas Schoebel-Theuer
6519dced2d marsadm: add new 'show' command
Display all relevant symlinks as key=value pairs.
2013-04-03 11:44:04 +02:00
Thomas Schoebel-Theuer
9763a49551 marsadm: change whitespace to match kernel coding style 2013-04-03 09:22:32 +02:00
Thomas Schoebel-Theuer
5fc1844eba marsadm: allow switchback to primary when I am actually primary
For example, when /dev/mars/something is mounted or in another use,
switching to secondary will only succeed after the device has
been closed. During this intermediate state, we allow to switch
back to primary without checking all the big checks.
2013-04-03 09:17:26 +02:00
Daniel Hermann
01340092de marsadm: Fixed check_splitbrain() to allow obsolete version link syntax
Signed-off-by: Thomas Schoebel-Theuer <schoebel@bell.site>
2013-03-11 14:39:17 +01:00
Thomas Schoebel-Theuer
be57ca7949 marsadm: document global options 2013-02-13 11:57:01 +01:00
Thomas Schoebel-Theuer
1516c46bf2 marsadm: add --timeout= option 2013-02-13 11:50:44 +01:00
Thomas Schoebel-Theuer
640a1742e3 marsadm: implement mars-state command 2013-02-12 15:39:49 +01:00
Thomas Schoebel-Theuer
c47d55cc49 marsadm: fix --force for switching to secondary 2013-02-12 15:39:12 +01:00
Thomas Schoebel-Theuer
e88e857ee9 light: show logfile name in versionlink 2013-01-23 20:07:01 +01:00
Thomas Schoebel-Theuer
4dbedabd78 marsadm: fix typo leading to wrong deletes of versionlinks 2013-01-23 20:07:01 +01:00
Thomas Schoebel-Theuer
c6d22e7553 marsadm: log all messages to syslog 2013-01-23 20:06:56 +01:00
jmann
70d409b200 mars-status: release 0.070
--------------------------
- same small fixes
- upgrade history-replay
- logfile-delay
- displaying debug
- upgrade replay*/version* links
- upgrade system links
2013-01-23 20:06:56 +01:00
jmann
f46fb7b61e release 0.071
- same small fixes
- upgrade history-replay
- logfile-delay
- displaying debug
- upgrade replay*/version* links
- upgrade system links
2013-01-23 20:06:56 +01:00
jmann
26dba100c0 update manpages 2013-01-23 20:06:56 +01:00
jmann
60942678ab actualy versions mars-status, include same fixes 2013-01-23 20:06:56 +01:00
jmann
b25edf055b cleanup branch 2013-01-23 20:06:56 +01:00
jmann
0ac88f3378 20121201 - redesign debug-files and -messages
20120204 - add display todo counter
20120205 - add/update system entrys
and same small bugs ...

Conflicts:

	userspace/mars-status
2013-01-23 20:06:56 +01:00
jmann
4bc3076f7f same small fixes. 2013-01-23 20:06:55 +01:00
jmann
f1122eccf7 20121201 - redesign debug-files and -messages
20120204 - add display todo counter
20120205 - add/update system entrys
and same small bugs ...
2013-01-23 20:06:55 +01:00
Thomas Schoebel-Theuer
47040b5798 brick_say: implement status files via intermediate .tmp files 2013-01-23 20:06:49 +01:00
jmann
974bed2b7a - some fixes on mars-status
- add test
2013-01-23 20:06:21 +01:00
Thomas Schoebel-Theuer
fadaacef15 marsadm: treat log-delete-all equally to log-delete
Hopefully this does not break anything.
2013-01-20 23:24:30 +01:00
Thomas Schoebel-Theuer
6f77dcc562 marsadm: tolerate missing version symlinks upon fake 2013-01-20 23:24:29 +01:00
Thomas Schoebel-Theuer
c7c3ef135f marsadm: reset replaylink at invalidate (ITOPWPT-230) 2013-01-20 23:24:29 +01:00
Thomas Schoebel-Theuer
51307fe7a6 marsadm: log-delete-all left-over version symlinks (ITOPWPT-241) 2013-01-20 23:24:29 +01:00
Thomas Schoebel-Theuer
a78094c799 marsadm: fix deletion of empty logfiles (ITOPWPT-237) 2013-01-20 23:24:29 +01:00
jmann
2b20ff1b67 - same fixes (history, color, ...)
- add same news (resize, limits, speed, ...)
2013-01-20 23:24:29 +01:00
Thomas Schoebel-Theuer
0a7b6df106 marsadm resize: change syncstatus only at the primary 2013-01-20 23:24:28 +01:00
Thomas Schoebel-Theuer
57ee4e306f marsadm: better verbosity at resize problem with syncstatus 2013-01-20 23:24:28 +01:00
Thomas Schoebel-Theuer
c532f909ad marsadm: check for already running sync, fix syncstatus 2013-01-20 23:24:28 +01:00
Thomas Schoebel-Theuer
a9e7affde5 marsadm: fix wrong minimum computation in resize 2013-01-20 23:24:28 +01:00
jmann
380a38a903 small fixed for help and command 2013-01-20 23:24:28 +01:00
Thomas Schoebel-Theuer
0ff5504db1 marsadm: fix typo in pause_replay_local_res 2013-01-20 23:24:28 +01:00
Thomas Schoebel-Theuer
118d6f8c84 marsadm: fix stabilizing of resource in the cluster 2013-01-20 23:24:28 +01:00
Thomas Schoebel-Theuer
dcf54eacf7 marsadm: allow *-cluster only when kernel module unloaded 2013-01-20 23:24:28 +01:00
Thomas Schoebel-Theuer
100fdf1e6c marsadm: fix unintended switchover to secondary 2013-01-20 23:24:25 +01:00
Thomas Schoebel-Theuer
69d47e8f96 marsadm: implement leave-{cluster,resource} 2013-01-20 23:24:24 +01:00
Thomas Schoebel-Theuer
8ad0d372aa light: implement resize operation during operation 2013-01-20 23:24:24 +01:00
Thomas Schoebel-Theuer
02fab7692f marsadm: start connected after join-resource etc 2013-01-20 23:24:22 +01:00
jmann
9fc54e4f92 same small fixes 2013-01-20 23:24:22 +01:00
Thomas Schoebel-Theuer
00f7b9e55b add replicated directories for userspace usage 2013-01-20 23:24:21 +01:00
jmann
efdd3d1306 add : - same fixes
- check logfiles
	- option monitor
	- handling error/warning
2013-01-20 23:24:21 +01:00
jmann
b0cdd13ce5 same more fixes 2013-01-20 23:24:20 +01:00
jmann
eef8878205 same small fixes, update short summary 2013-01-20 23:24:19 +01:00
jmann
1bfe46ee1a add small help and manpage for marsadm, mars-status 2013-01-20 23:24:19 +01:00
jmann
994eb28e42 same small fixes 2013-01-20 23:24:19 +01:00
jmann
41d8352b95 same fixes on mars-status 2013-01-20 23:24:18 +01:00
jmann
d008e20fcd fix same errors and new funktions 2013-01-20 23:24:17 +01:00
Ulrich Goettlich
c4a42f6ad5 changed mars-status.pl to use marsadm --version option 2013-01-20 23:24:16 +01:00
Ulrich Goettlich
a09bf514a9 added --version option to marsadm 2013-01-20 23:24:16 +01:00
Ingvar Gilbert
2e923f145e marsadm: die if IP not detected 2013-01-20 23:24:15 +01:00
Ingvar Gilbert
42ec65952d marsadm: use first IP on eth0 2013-01-20 23:24:15 +01:00
Ulrich Goettlich
004b3bbe6a * added Option Parsing
* added interval
* added usage of PATH to find marsadm
2013-01-20 23:24:14 +01:00
Thomas Schoebel-Theuer
4a9f141f8b marsadm: obey --force at log-delete-all 2013-01-20 23:24:13 +01:00
Thomas Schoebel-Theuer
7b0f4dbec4 new command marsadm log-delete-all 2013-01-20 23:23:47 +01:00
Thomas Schoebel-Theuer
c20181c17b rework of check_splitbrain() logic
also delete old versionlinks at marsadm log-delete
2013-01-20 23:23:47 +01:00
jmann
c9690d2c19 readd mars-status.pl 2013-01-20 23:23:43 +01:00
jmann
2a5b6b59a7 modified: ../.gitattributes 2013-01-20 23:23:43 +01:00
jmann
bde90c7691 add Gitt commands to mars-status.pl 2013-01-20 23:23:43 +01:00
jmann
df22f6bc58 add mars-status 2013-01-20 23:23:43 +01:00
Thomas Schoebel-Theuer
f28d439dfb create faked versionlinks upon late join-resource 2013-01-20 23:23:42 +01:00
Thomas Schoebel-Theuer
54f9334643 better --force handling 2013-01-20 23:23:42 +01:00
Thomas Schoebel-Theuer
92d9778dd7 fix race on primary switchover
solution: wait until all in /mars/resouce-*/ has stabilized
for 60s and all known logfiles have been migrated.
This more a workaround than a solution and should be fixed
in MARS FULL.
2013-01-20 23:23:41 +01:00
Thomas Schoebel-Theuer
81bfb9471a fix network race on primary/secondary switch
The race could lead to unnecessary split brain.
Now we wait until everything in the resource directory became stable
for at least 60 seconds. This may be somewhat too conservative
when having k>2 participants on the same resource.
2013-01-20 23:23:41 +01:00
Thomas Schoebel-Theuer
2f9d86b994 rename /proc/sys/mars to /proc/sys/mars/trigger
create basis for adding more entries to /proc/sys/mars/
2013-01-20 23:23:40 +01:00
jmann
cc3f4e9ac5 fix remote connect on marsadm 2013-01-20 23:23:31 +01:00
Thomas Schoebel-Theuer
d4f6d3f6a4 added feature log-rotate (while the system is loaded) 2013-01-13 12:12:06 +01:00
Thomas Schoebel-Theuer
1a58aadc90 fix bad checking in log-delete 2013-01-13 12:12:06 +01:00
Thomas Schoebel-Theuer
977e5a3b3a introduced "marsadm log-delete"
TBD: "marsadm log-purge"
TBD: long-term cleanup of symlinks in /mars/todo-global/
2013-01-13 12:12:06 +01:00
Thomas Schoebel-Theuer
681ffcb35e introduced allow-replay (independent from pause-sync) 2013-01-13 12:12:06 +01:00
Thomas Schoebel-Theuer
6f5a3b0da2 fix bad replay symlink upon join-resource 2013-01-13 12:12:06 +01:00
Thomas Schoebel-Theuer
750a36de5d Merge branch 'master' of ssh://git.schlund.de/tst/mars
Conflicts:
	userspace/marsadm
2013-01-13 12:12:06 +01:00
jmann
538bff0812 fix marsadm for replay links 2013-01-13 12:12:05 +01:00
Thomas Schoebel-Theuer
ad9f40eac5 fix setup of secondaries, remove faked version links
remaining bug: version symlink is omitted when transaction log has size 0.
2013-01-13 12:12:05 +01:00
jmann
59af89b6f9 Syntaxerror marsadm 2013-01-13 12:12:05 +01:00
Thomas Schoebel-Theuer
2793ec2148 fix possible hole in join_cluster checking, add $Id$ to marsadm 2013-01-13 12:12:05 +01:00
Thomas Schoebel-Theuer
713dd11960 fix missing test upon join-resource 2013-01-13 12:12:05 +01:00
root
9d00314c49 replace switch-*/ by todo-*/ 2013-01-13 12:11:51 +01:00
Thomas Schoebel-Theuer
3091f75f67 import mars-125.tgz 2013-01-08 15:54:44 +01:00
Thomas Schoebel-Theuer
374f37aca9 import mars-121.tgz 2013-01-08 15:54:41 +01:00
Thomas Schoebel-Theuer
62ed7174e8 import mars-118.tgz 2013-01-08 15:54:38 +01:00
Thomas Schoebel-Theuer
ead69b3294 import mars-116.tgz 2013-01-08 15:54:37 +01:00
Thomas Schoebel-Theuer
64885b651e import mars-115.tgz 2013-01-08 15:54:37 +01:00
Thomas Schoebel-Theuer
2a4d50d2a5 import mars-114.tgz 2013-01-08 15:54:36 +01:00
Thomas Schoebel-Theuer
60f17b2db8 import mars-112.tgz 2013-01-08 15:54:34 +01:00
Thomas Schoebel-Theuer
45ebd8c50f import mars-111.tgz 2013-01-08 15:54:33 +01:00
Thomas Schoebel-Theuer
9e6af72a34 import mars-110.tgz 2013-01-08 15:54:33 +01:00
Thomas Schoebel-Theuer
b01cfa51e2 import mars-105.tgz 2013-01-08 15:54:31 +01:00
Thomas Schoebel-Theuer
c430b3701f import mars-83.tgz 2013-01-08 15:54:21 +01:00
Thomas Schoebel-Theuer
9b1410c0ef import mars-82.tgz 2013-01-08 15:54:20 +01:00
Thomas Schoebel-Theuer
ee9a1d47ff import mars-81.tgz 2013-01-08 15:54:20 +01:00
Thomas Schoebel-Theuer
39e1d97553 import mars-80.tgz 2013-01-08 15:54:19 +01:00
Thomas Schoebel-Theuer
5ede8cd9ce import mars-75.tgz 2013-01-08 15:54:15 +01:00
Thomas Schoebel-Theuer
aa208e44d4 import mars-71.tgz 2013-01-08 15:54:13 +01:00
Thomas Schoebel-Theuer
4c4f0a8691 import mars-69.tgz 2013-01-08 15:54:12 +01:00
Thomas Schoebel-Theuer
bbff01d71f import mars-68.tgz 2013-01-08 15:54:12 +01:00
Thomas Schoebel-Theuer
7dec70085d import mars-67.tgz 2013-01-08 15:54:12 +01:00
Thomas Schoebel-Theuer
778f1f37ed import mars-65.tgz 2013-01-08 15:54:10 +01:00
Thomas Schoebel-Theuer
93b96df54f import mars-61.tgz 2013-01-08 15:54:07 +01:00
Thomas Schoebel-Theuer
88adc7457a import mars-60.tgz 2013-01-08 15:54:06 +01:00
Thomas Schoebel-Theuer
d9a6c14a89 import mars-56.tgz 2013-01-08 15:54:05 +01:00