Commit Graph

165 Commits

Author SHA1 Message Date
Thomas Schoebel-Theuer 637ec3fc4e tools: new checking tool write-reboot.c
Use this for testing the power blackout safety.
2013-07-04 09:06:36 +02:00
Thomas Schoebel-Theuer e6a39cf313 tools: add provisionary logfile import/export (HACKERS ONLY)
Use this for testing or for repair if you are extremely desperate.
This is not yet end-user friendly.
2013-07-04 09:06:36 +02:00
Thomas Schoebel-Theuer 295b0f4ada marsadm: relax precondition for create-resource 2013-07-04 07:21:01 +02:00
Thomas Schoebel-Theuer e0d980223b marsadm: wait-cluster has-device waits for actual device appearance 2013-07-04 07:21:01 +02:00
Thomas Schoebel-Theuer 269c53d565 marsadm: make 'wait-connect' an alias to 'wait-resource' 2013-07-04 07:21:00 +02:00
Thomas Schoebel-Theuer 228a464c8a marsadm: mark "verify" as forbidden
It would be dangerous since DRBD semantics are not implemented.
2013-07-04 07:21:00 +02:00
Thomas Schoebel-Theuer 45f462026f marsadm: fix leave-resource cleanup
Now the sequence leave-resource ; join-resource should work.

When the last member of the resource has gone and create-resource is
tried anew, there is a new saftey measure: the old resource directory
is left over deliberately, thus the new create-resource will deny creation
because some unreachable cluster node may have existed, such that we
didn't even know of its resource membership. This very special
case requires --force and some handwork cleanup.
2013-07-04 07:21:00 +02:00
Frank Liepold 62b016d4cc marsadm: set syncstatus link on primary after marsadm resize 2013-07-04 07:21:00 +02:00
Daniel Hermann e0ed98eb14 marsadm: secondary waits until device has disappeared
Signed-off-by: Thomas Schoebel-Theuer <tst@1und1.de>
2013-06-29 21:15:17 +02:00
Thomas Schoebel-Theuer fd39137cc9 marsadm: 'secondary' waits until device has disappeared 2013-06-20 15:08:28 +02:00
Thomas Schoebel-Theuer 15c76e9ffb marsadm: check block device for exclusive access in {create,join}-resource 2013-06-20 15:08:28 +02:00
Thomas Schoebel-Theuer 84bb63ccc8 marsadm: remove potentially dangerous internal _create_cluster() call 2013-06-20 15:08:28 +02:00
Thomas Schoebel-Theuer eec86bf1af marsadm: create initial versionlink upon create-resource 2013-06-20 15:08:28 +02:00
Thomas Schoebel-Theuer e7edf0020e marsadm: workaround race between create-resource and join-resource 2013-06-20 15:08:28 +02:00
Thomas Schoebel-Theuer dab34fa2f6 marsadm: new command 'set-link' 2013-06-20 15:08:28 +02:00
Thomas Schoebel-Theuer cacea6d673 marsadm: abort 'primary' operation upon errors 2013-06-20 15:08:28 +02:00
Thomas Schoebel-Theuer 2ab837cf09 marsadm: augment 'wait-resource' with specific wait conditions 2013-06-20 15:08:28 +02:00
Thomas Schoebel-Theuer ea286c6da1 marsadm: add new option --host= 2013-06-20 15:08:28 +02:00
Thomas Schoebel-Theuer dca17cb9b1 marsadm: change defaults for *{,-local,-global}
By default, {dis}connect and {pause,resume}-{replay,sync} should
only switch the _local_ buttons. Otherwise, unexpected side-effects
could result at bigger clusters (#nodes >> 2) from a human point of view.

The new behaviour is different from DRBD, but DRBD was (until recently)
only working on _pairs_, so global spreadout was impossible.

Global switching may be requested at any time by appending suffix
"-global", which is just no longer the default in MARS.

If anyone has objections, it is straightforward to change the
defaults again.
2013-06-20 15:08:28 +02:00
Thomas Schoebel-Theuer fc0e6baa01 marsadm: new command delete-file 2013-06-20 15:08:28 +02:00
Thomas Schoebel-Theuer 3f6d1d8858 marsadm: report errors during wait for primary 2013-06-20 15:08:27 +02:00
Thomas Schoebel-Theuer 6c3d225f1d marsadm: fix detection of /mars/ directory 2013-06-20 15:08:27 +02:00
Thomas Schoebel-Theuer 60adc8a1c5 marsadm: fix versionlink creation on freshly joined resource 2013-06-20 15:08:27 +02:00
Thomas Schoebel-Theuer 99a8800b03 marsadm: fix 'invalidate', split into phases 2013-06-20 15:08:27 +02:00
Thomas Schoebel-Theuer fca84e9417 marsadm: optional size argument for 'create-resource' 2013-06-20 15:08:27 +02:00
Thomas Schoebel-Theuer ab08291124 marsadm: fix join-cluster 2013-06-20 15:08:27 +02:00
Thomas Schoebel-Theuer 396ec7f0f9 marsadm: fix leave-resource, split into phases 2013-06-20 15:08:27 +02:00
Thomas Schoebel-Theuer 7187462a6e marsadm: add global uuid to cluster 2013-06-20 15:08:27 +02:00
Thomas Schoebel-Theuer a1920494b4 marsadm: new commands {cat,show-{info,errors}} 2013-06-20 15:08:27 +02:00
Thomas Schoebel-Theuer 62a2dea515 marsadm: remove timestamp functions
Timestamps of symlinks are used for Lamport comparison
(any newer one overwrites any older one).

That concept should _not_ be used for any other comparison, since
there is no / not yet any "transactional" property of
bulk updates of symlinks (the Lamport condition treats each
symlink independently from any other).

Until such "transactions" are introduced at the strategy layer,
timestamp comparisons between _different_ symlinks are
unmeaningful in general.
2013-06-20 15:08:27 +02:00
Thomas Schoebel-Theuer e9035548a4 marsadm: split {{at,de}tach,up,down} into phases 2013-06-20 15:08:27 +02:00
Thomas Schoebel-Theuer 0e15b38457 marsadm: add new commands 'wait-{cluster,resource}' 2013-06-03 09:05:46 +02:00
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