tridge/autocluster.git
14 years agoOnly print message about creating a disk when actually creating a disk.
Martin Schwenke [Wed, 12 May 2010 02:46:02 +0000 (12:46 +1000)]
Only print message about creating a disk when actually creating a disk.

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoNew value for SYSTEM_DISK_FORMAT: "none".
Martin Schwenke [Wed, 12 May 2010 02:36:35 +0000 (12:36 +1000)]
New value for SYSTEM_DISK_FORMAT: "none".

This skips disk image creation but still creates the libvirt XML files
for the nodes.  This can be used if you want to take advantage of some
of autocluster's features but don't actually want to create a cluster.

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoNew function create_node_configure_image() to do the per-image configuration.
Martin Schwenke [Wed, 12 May 2010 02:22:38 +0000 (12:22 +1000)]
New function create_node_configure_image() to do the per-image configuration.

Move existing code to a function to make it easier to call
conditionally.

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoTest SONAS releases after 1.1.0.x with RHEL5.5.
Martin Schwenke [Tue, 11 May 2010 23:13:35 +0000 (09:13 +1000)]
Test SONAS releases after 1.1.0.x with RHEL5.5.

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agonbd-client is also optional if SYSTEM_DISK_FORMAT is not "raw".
Martin Schwenke [Fri, 30 Apr 2010 00:58:19 +0000 (10:58 +1000)]
nbd-client is also optional if SYSTEM_DISK_FORMAT is not "raw".

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoAlways set SONAS_VERSION, since it is no longer a configuration variable.
Martin Schwenke [Thu, 29 Apr 2010 03:13:36 +0000 (13:13 +1000)]
Always set SONAS_VERSION, since it is no longer a configuration variable.

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoRevert "New SOFS configuration variable SONAS_VERSION, default to null."
Martin Schwenke [Thu, 29 Apr 2010 03:09:32 +0000 (13:09 +1000)]
Revert "New SOFS configuration variable SONAS_VERSION, default to null."

This reverts commit 91a7e656612a3bd94cb7922b5918a73048743d5c.

Given 7cccfaa022972988ee262f4014037c62abdecdf4 we no longer need this
is a configuration variable, so let's not support too many ways of
doing things!

14 years agoAllow releases of the form <product>-<version> to use product.release.
Martin Schwenke [Thu, 29 Apr 2010 03:03:57 +0000 (13:03 +1000)]
Allow releases of the form <product>-<version> to use product.release.

Make releases more consistent with how they've always been.  If
there's no <product>-<version>.release file then look for
<product>.release and, if it exists, pass <version> to it.

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoNew release file for SONAS.
Martin Schwenke [Thu, 29 Apr 2010 01:44:52 +0000 (11:44 +1000)]
New release file for SONAS.

This is essentially the same as SoFS-2.0.release but respects either
$SONAS_VERSION or an argument to the release file.  It also sets a few
variables to more SONAS-specific values.

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoNew SOFS configuration variable SONAS_VERSION, default to null.
Martin Schwenke [Thu, 29 Apr 2010 01:44:23 +0000 (11:44 +1000)]
New SOFS configuration variable SONAS_VERSION, default to null.

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoMake with_release() pass args $2.. to the release file when sourcing it.
Martin Schwenke [Thu, 29 Apr 2010 01:42:46 +0000 (11:42 +1000)]
Make with_release() pass args $2.. to the release file when sourcing it.

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoAdd support for RHEL5.5 cluster nodes.
Martin Schwenke [Wed, 28 Apr 2010 06:27:45 +0000 (16:27 +1000)]
Add support for RHEL5.5 cluster nodes.

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agosetup_gpfs.sh must source nsd_server_common.bash before processing args.
Martin Schwenke [Tue, 20 Apr 2010 04:35:56 +0000 (14:35 +1000)]
setup_gpfs.sh must source nsd_server_common.bash before processing args.

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoAdd command-line options to setup_gpfs.sh.
Martin Schwenke [Tue, 20 Apr 2010 04:10:05 +0000 (14:10 +1000)]
Add command-line options to setup_gpfs.sh.

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoUsage for SHARED_DISK_TYPE option should mention "iscsi".
Martin Schwenke [Wed, 31 Mar 2010 02:58:17 +0000 (13:58 +1100)]
Usage for SHARED_DISK_TYPE option should mention "iscsi".

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoMakefile: Use time in the version string as well.
Martin Schwenke [Mon, 29 Mar 2010 01:35:55 +0000 (12:35 +1100)]
Makefile: Use time in the version string as well.

Otherwise the versions are less likely to be monotonic.

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoMakefile: Add rpm target and fix version.
Martin Schwenke [Mon, 29 Mar 2010 00:56:13 +0000 (11:56 +1100)]
Makefile: Add rpm target and fix version.

Version can't contain hyphens or rpmbuild gets upset.

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoMakefile: Make dist target and associated generated targets more robust.
Martin Schwenke [Mon, 29 Mar 2010 00:40:33 +0000 (11:40 +1100)]
Makefile: Make dist target and associated generated targets more robust.

In the version, use the date from the last git commit rather than the
current date.  This means that debian/changelog and autocluster.spec
can be more reliably generated.

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoDocument how to use autocluster with RHEL5 KVM package.
Martin Schwenke [Wed, 24 Mar 2010 02:43:21 +0000 (13:43 +1100)]
Document how to use autocluster with RHEL5 KVM package.

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoParameterise the iSCSI target deletion with ISCSI_TID.
Martin Schwenke [Tue, 23 Mar 2010 07:38:46 +0000 (18:38 +1100)]
Parameterise the iSCSI target deletion with ISCSI_TID.

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoUse tgt-admin --delete with --force to delete targets.
Martin Schwenke [Tue, 23 Mar 2010 07:29:44 +0000 (18:29 +1100)]
Use tgt-admin --delete with --force to delete targets.

This has 2 advantages:

* It disconnect any existing sessions to help force the deletion.

* It doesn't print an error message if the target doesn't exist.

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoOnly check for QEMU_NBD command if SYSTEM_DISK_FORMAT is not "raw".
Martin Schwenke [Tue, 23 Mar 2010 03:59:26 +0000 (14:59 +1100)]
Only check for QEMU_NBD command if SYSTEM_DISK_FORMAT is not "raw".

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoImprove iSCSI host setup.
Martin Schwenke [Fri, 19 Mar 2010 04:11:51 +0000 (15:11 +1100)]
Improve iSCSI host setup.

This adds a command to delete the iSCSI target.  This also changes the
message printed after cluster creation: the script should always be
run since leaving LUNs between clusters may result in cached data
surviving even though the disks have been recreated.

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoRemove any old shared disks before creating new ones.
Martin Schwenke [Thu, 18 Mar 2010 10:22:51 +0000 (21:22 +1100)]
Remove any old shared disks before creating new ones.

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoiscsimultipath initscript should identify itself when running.
Martin Schwenke [Thu, 18 Mar 2010 10:22:23 +0000 (21:22 +1100)]
iscsimultipath initscript should identify itself when running.

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoAttempt to fix the iscsimultipath initscript.
Martin Schwenke [Thu, 18 Mar 2010 09:57:45 +0000 (20:57 +1100)]
Attempt to fix the iscsimultipath initscript.

Even if all of the devices are there, multipath doesn't necessarily do
what we expect.  This attempts to run multipath for up to 30 seconds
until the right number of slave devices appear.

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoImprove iSCSI multipath handling.
Martin Schwenke [Thu, 18 Mar 2010 09:21:01 +0000 (20:21 +1100)]
Improve iSCSI multipath handling.

The current code uses a sleep to try to ensure that all the iSCSI
devices have appeared before running multipath.  Like any situation
involving a seemingly random sleep this is a bug.  When the host
machine is heavily loaded 5 seconds isn't enough.

This adds an extra initscript to handle this more properly.  The
initscript is always installed but is only enabled using chkconfig on
relevant nodes.

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoIf $SYSTEM_DISK_FORMAT is raw then just do a loopback mount.
Martin Schwenke [Wed, 17 Mar 2010 10:12:57 +0000 (21:12 +1100)]
If $SYSTEM_DISK_FORMAT is raw then just do a loopback mount.

In this case we don't need any qemu-nbd magic.

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoIf SYSTEM_DISK_FORMAT is "raw" then BASE_FORMAT must also be "raw".
Martin Schwenke [Wed, 17 Mar 2010 09:27:48 +0000 (20:27 +1100)]
If SYSTEM_DISK_FORMAT is "raw" then BASE_FORMAT must also be "raw".

Add a check to ensure this and a corresponding error if it isn't true.

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoBase image filename now ends in $BASE_FORMAT.
Martin Schwenke [Wed, 17 Mar 2010 09:20:19 +0000 (20:20 +1100)]
Base image filename now ends in $BASE_FORMAT.

Using $BASE_FORMAT in the base image filename will make error more
obvious.

For raw system disks we will just be copying the base image, so it
needs to be raw too.  Currently changing BASE_FORMAT doesn't change
the name of the base image so, unless we do complicated things
(perhaps involving the "file" command), we won't be able to tell if
we're copying an old qcow2 image or current raw image.

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoNew configuration option SYSTEM_DISK_FORMAT.
Martin Schwenke [Wed, 17 Mar 2010 04:35:34 +0000 (15:35 +1100)]
New configuration option SYSTEM_DISK_FORMAT.

If this is:

* "qcow2" then use qemu-img create with a a base image.

* "raw" then use cp to copy base image.

* otherwise, error.

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoMerge branch 'iscsi'
Martin Schwenke [Tue, 16 Mar 2010 04:26:18 +0000 (15:26 +1100)]
Merge branch 'iscsi'

14 years agoFix RPM creation in autocluster
Ralph Wuerthner [Mon, 15 Mar 2010 16:10:01 +0000 (17:10 +0100)]
Fix RPM creation in autocluster

Martin,

while testing autocluster RPMs I had to make the following simple change to
autocluster:

commit bf7ded9fa88d11c219238499c2658fe68db0befb
Author: Ralph Wuerthner <ralph.wuerthner@de.ibm.com>
Date:   Thu Mar 4 09:13:35 2010 +0100

    Added config.d directory to RPM package

14 years agoFix iSCSI host setup bug.
Martin Schwenke [Tue, 16 Mar 2010 00:06:54 +0000 (11:06 +1100)]
Fix iSCSI host setup bug.

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoiscsi_out needs to be set in a function so it gets the value of CLUSTER.
Martin Schwenke [Tue, 16 Mar 2010 00:03:52 +0000 (11:03 +1100)]
iscsi_out needs to be set in a function so it gets the value of CLUSTER.

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoFix careless error in iSCSI host configuration.
Martin Schwenke [Mon, 15 Mar 2010 23:48:42 +0000 (10:48 +1100)]
Fix careless error in iSCSI host configuration.

The code to generate a LUN for each path was mostly missing and
otherwise broken.

This also reverts a stupid change in a recent commit that changed the
filename for the shared disk in the LUN specification.  We actually
use a variable that has the filename already in it...

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoMake iscsi_cluster_created() point to file containing the tgtadm commands.
Martin Schwenke [Mon, 15 Mar 2010 23:40:23 +0000 (10:40 +1100)]
Make iscsi_cluster_created() point to file containing the tgtadm commands.

The list of commands is too long, so we no longer print them out, we
just point to the file.

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoMove iSCSI host setup from shared_disk_template() to shared_disk_setup().
Martin Schwenke [Mon, 15 Mar 2010 23:32:12 +0000 (10:32 +1100)]
Move iSCSI host setup from shared_disk_template() to shared_disk_setup().

shared_disk_template() is called for each node, so that was the wrong
place for this code.  This means shared_disk_template() is
approximately back to where it was a few versions ago.

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoNew configuration variables for shared disks.
Martin Schwenke [Mon, 15 Mar 2010 23:22:01 +0000 (10:22 +1100)]
New configuration variables for shared disks.

This adds variables SHARED_DISK_FIRST_SUFFIX and
SHARED_DISK_MULTIPATH_NUMPATHS, which are used for default values of
arguments to shared_disk_template().

Passing arguments to shared_disk_template() is now deprecated.  Use
the variables instead.  That said, it should rarely be necessary to
modify the either variable from its default value.

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoRemove indentation from message in iscsi_cluster_created().
Martin Schwenke [Mon, 15 Mar 2010 22:59:41 +0000 (09:59 +1100)]
Remove indentation from message in iscsi_cluster_created().

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoiSCSI bug fixes.
Martin Schwenke [Mon, 15 Mar 2010 22:55:45 +0000 (09:55 +1100)]
iSCSI bug fixes.

Make iSCSI host setup add tgtadm commands instead of overwriting
existing file contents.  Fix a command that tried to use configuration
variables in the template style instead of required shell style.

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoAdd missing backslashes to sed commands in iSCSI code.
Martin Schwenke [Mon, 15 Mar 2010 05:15:28 +0000 (16:15 +1100)]
Add missing backslashes to sed commands in iSCSI code.

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoPrint a message when setting up iSCSI shared disks for each client.
Martin Schwenke [Mon, 15 Mar 2010 04:59:42 +0000 (15:59 +1100)]
Print a message when setting up iSCSI shared disks for each client.

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoiscsi_cluster_created should only be registered if using iSCSI shared disks.
Martin Schwenke [Mon, 15 Mar 2010 04:59:15 +0000 (15:59 +1100)]
iscsi_cluster_created should only be registered if using iSCSI shared disks.

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoUse cluster_created_hooks to print a message about iSCSI host configuration.
Martin Schwenke [Mon, 15 Mar 2010 04:23:04 +0000 (15:23 +1100)]
Use cluster_created_hooks to print a message about iSCSI host configuration.

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoAdd new hook cluster_created_hook.
Martin Schwenke [Mon, 15 Mar 2010 04:22:30 +0000 (15:22 +1100)]
Add new hook cluster_created_hook.

This is run at the end of cluster creation.

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoRework handling of existing hooks, part 2.
Martin Schwenke [Mon, 15 Mar 2010 04:20:25 +0000 (15:20 +1100)]
Rework handling of existing hooks, part 2.

Commit a65c5546d812b4669277e55c8d7f7ca915b6d12c needs this as well.

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoRework handling of existing hooks.
Martin Schwenke [Mon, 15 Mar 2010 04:03:38 +0000 (15:03 +1100)]
Rework handling of existing hooks.

Make hack_nodes_functions, create_cluster_hooks, setup_base_hooks use
the new hook infrastructure.

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoNew infrastructure functions register_hook and run_hooks.
Martin Schwenke [Mon, 15 Mar 2010 03:56:25 +0000 (14:56 +1100)]
New infrastructure functions register_hook and run_hooks.

The latter takes a variable *name* not a variable *value*.

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoGeneration of iSCSI host configuration, part 1.
Martin Schwenke [Sun, 14 Mar 2010 23:55:26 +0000 (10:55 +1100)]
Generation of iSCSI host configuration, part 1.

New configuration variable ISCSI_TID for target ID.  This may still
need to be retrofitted to the client configuration.
shared_disk_template() generates most of the required tgtadm commands
and shared_disk_iscsi_setup_base_internal() generates the ACLs.

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoOverride shared_disk_iscsi_setup_base with SoFS-specific version.
Martin Schwenke [Fri, 12 Mar 2010 07:41:29 +0000 (18:41 +1100)]
Override shared_disk_iscsi_setup_base with SoFS-specific version.

This only calls shared_disk_iscsi_setup_base_internal if:

* there are no sofs_storage nodes; or
* the current node is a sofs_storage node.

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoFirst part of iSCSI support for shared disks.
Martin Schwenke [Fri, 12 Mar 2010 07:31:30 +0000 (18:31 +1100)]
First part of iSCSI support for shared disks.

Several new configuration variables: ISCSI_HOST, ISCSI_PORT,
ISCSI_IQN, ISCSI_DEFAULT_TEMPLATE, ISCSI_ST_CONFIG_TEMPLATE - all
fairly self-explanatory.

shared_disk_template() does nothing if SHARED_DISK_TYPE is "iscsi".

shared_disk_setup() creates disk images with dd if SHARED_DISK_TYPE is
"iscsi".

New $setup_base_hook function shared_disk_iscsi_setup_base() does
these things on each node it is called for:

* Creates a default iSCSI client config.
* Hacks /etc/init.d/iscsi to do multipath magic.

shared_disk_iscsi_setup_base() is defined indirectly via function
shared_disk_iscsi_setup_base_internal() so that it can be overridden
by a function that may conditionally call the internal version.

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoGit should ignore more files in the debian/ subdirectory.
Martin Schwenke [Fri, 12 Mar 2010 07:28:31 +0000 (18:28 +1100)]
Git should ignore more files in the debian/ subdirectory.

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoshared_disk_template() bug fix for first disk suffix.
Martin Schwenke [Fri, 12 Mar 2010 07:26:32 +0000 (18:26 +1100)]
shared_disk_template() bug fix for first disk suffix.

If the shared disks are of a different type to the system disks then
we should default to starting at 'a' instead of 'b'.

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agosetup_base now calls commands in $setup_base_hooks.
Martin Schwenke [Fri, 12 Mar 2010 07:23:18 +0000 (18:23 +1100)]
setup_base now calls commands in $setup_base_hooks.

Use new function register_create_cluster_hook() to register hooks in
this variable.

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoParameterise multipath.conf.
Martin Schwenke [Fri, 12 Mar 2010 07:20:10 +0000 (18:20 +1100)]
Parameterise multipath.conf.

Add new variable SHARED_DISK_MULTIPATH_CALLOUT to parameterise the
uid_callout option and use SYSTEM_DISK_PREFIX to decide what to
blacklist.

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoMake the disk cache types configurable.
Martin Schwenke [Thu, 25 Feb 2010 02:13:23 +0000 (13:13 +1100)]
Make the disk cache types configurable.

New options SYSTEM_DISK_CACHE and SHARED_DISK_CACHE can be used to
configure the cache type of the disks.  Valid values are: default,
none, writeback, writethrough - or as specified in the libvirt XML
documentation.

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoIn Makefile packaging files depend on Makefile.
Martin Schwenke [Wed, 24 Feb 2010 22:55:18 +0000 (09:55 +1100)]
In Makefile packaging files depend on Makefile.

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoMakefile puts git hash in version.
Martin Schwenke [Wed, 24 Feb 2010 22:51:28 +0000 (09:51 +1100)]
Makefile puts git hash in version.

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoFor RPM BuildArch should be noarch.
Martin Schwenke [Wed, 24 Feb 2010 22:47:01 +0000 (09:47 +1100)]
For RPM BuildArch should be noarch.

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoMakefile fixes for building RPM.
Martin Schwenke [Wed, 24 Feb 2010 22:42:50 +0000 (09:42 +1100)]
Makefile fixes for building RPM.

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoUse rhel_gen_yum_repos to set YUM_TEMPLATE for SoFS releases.
Martin Schwenke [Thu, 18 Feb 2010 22:59:57 +0000 (09:59 +1100)]
Use rhel_gen_yum_repos to set YUM_TEMPLATE for SoFS releases.

SoFS.common now knows about the default SoFS settings for
YUM_TEMPLATE.  A couple of the release files set YUM_TEMPLATE
themselves because the default is not right for them.  Remove
SoFS.repo template and all of the associated SOFS_REPO_* options.

Hand tested for backward compatibility with commands like:

  ./autocluster --with-release=SoFS-2.0 \
    -e 'echo "@@@YUM_TEMPLATE@@@" | substitute_vars -'

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoSensible handling for YUM repositories.
Martin Schwenke [Thu, 18 Feb 2010 05:31:39 +0000 (16:31 +1100)]
Sensible handling for YUM repositories.

* The generated file is always autocluster.repo.

* New function rhel_gen_yum_repos() takes a repo names as args and
  generates output including all the named repos (all enabled) along
  with the contents of templates/RHEL.repo.

* The change to autocluster cause the repo file to be generated is a
  bit interesting.  :-)

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoDefault RHEL_VERSION is now 5.4.
Martin Schwenke [Thu, 18 Feb 2010 05:23:05 +0000 (16:23 +1100)]
Default RHEL_VERSION is now 5.4.

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoUse rhel_print_iso function for value of ISO in SoFS.common.
Martin Schwenke [Thu, 18 Feb 2010 05:20:50 +0000 (16:20 +1100)]
Use rhel_print_iso function for value of ISO in SoFS.common.

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoAdd infrastructure function for determining RHEL ISO name from RHEL_VERSION.
Martin Schwenke [Thu, 18 Feb 2010 05:18:19 +0000 (16:18 +1100)]
Add infrastructure function for determining RHEL ISO name from RHEL_VERSION.

Use this for default version of ISO.

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agosetup_gpfs.sh didn't work if there was only a single node.
Martin Schwenke [Thu, 4 Feb 2010 05:36:51 +0000 (16:36 +1100)]
setup_gpfs.sh didn't work if there was only a single node.

The main problem was that $secondary was unset so mmcrcluster would
generate a usage message because there would be no argument to -s.
However, 'onnode 1 ...' was used and would generate a spurious warning
while failing to set secondary.

This version uses "onnode all ..." once and then manipulates the
resulting list of hosts.

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoNew configuration variable CREATE_BASE_TIMEOUT.
Martin Schwenke [Thu, 4 Feb 2010 02:50:05 +0000 (13:50 +1100)]
New configuration variable CREATE_BASE_TIMEOUT.

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agovircmd: Sleep before retrying.
Martin Schwenke [Thu, 28 Jan 2010 05:32:42 +0000 (16:32 +1100)]
vircmd: Sleep before retrying.

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agovircmd: Exit with a useful return code.
Martin Schwenke [Thu, 28 Jan 2010 05:26:41 +0000 (16:26 +1100)]
vircmd: Exit with a useful return code.

Use the return code from the last virsh failure, if any.

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agovircmd: Add retry loop in vircmd to work around spurious internal errors.
Martin Schwenke [Thu, 28 Jan 2010 05:03:03 +0000 (16:03 +1100)]
vircmd: Add retry loop in vircmd to work around spurious internal errors.

Based on a variation by Klaus Smolin.

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoFix typo(s) in setup_tsm_server.sh - $AGENTS/$agents was inconsistent.
Martin Schwenke [Wed, 27 Jan 2010 05:27:51 +0000 (16:27 +1100)]
Fix typo(s) in setup_tsm_server.sh - $AGENTS/$agents was inconsistent.

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoRevert "Make new commands added to setup_tsm_server.sh synchronous."
Martin Schwenke [Thu, 21 Jan 2010 02:57:06 +0000 (13:57 +1100)]
Revert "Make new commands added to setup_tsm_server.sh synchronous."

These changes don't work.  :-(

This reverts commit 831738a709251d57b13e8c02bfcc1f60dcb5a895.

14 years agoMake new commands added to setup_tsm_server.sh synchronous.
Martin Schwenke [Tue, 5 Jan 2010 23:22:41 +0000 (10:22 +1100)]
Make new commands added to setup_tsm_server.sh synchronous.

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agosetup_tsm_server.sh updates to use storage pools more flexibly.
Martin Schwenke [Tue, 5 Jan 2010 03:53:50 +0000 (14:53 +1100)]
setup_tsm_server.sh updates to use storage pools more flexibly.

Add some TSM magic so that the backup and archive pools spill over
into the space management pool.

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoRemove the FIXME message related to $(genpkg) files.
Martin Schwenke [Tue, 5 Jan 2010 03:47:23 +0000 (14:47 +1100)]
Remove the FIXME message related to $(genpkg) files.

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoSimplify "make dist".
Martin Schwenke [Tue, 5 Jan 2010 03:43:21 +0000 (14:43 +1100)]
Simplify "make dist".

I changed this locally to use "git archive" quite a while ago and it
has been slowing down my commits.  :-)

However, I couldn't figure out a neat way of adding the extra
$(genpkg) (generated packaging) files to the archive generated by "git
archive".  GNU tar's --transform option makes it trivial!

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoUpdate setup_tsm_client.sh.
Martin Schwenke [Tue, 5 Jan 2010 03:28:09 +0000 (14:28 +1100)]
Update setup_tsm_client.sh.

This should be run on a sofs_front node and will configure all
sofs_front nodes to do HSM.  Updated so that the first tsm_server node
is configured as the server and HSM is only configured on sofs_front
nodes.

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoRename config variable TSM_ACRHIVE_POOL_SIZE to TSM_ARCHIVE_POOL_SIZE.
Martin Schwenke [Tue, 5 Jan 2010 02:56:00 +0000 (13:56 +1100)]
Rename config variable TSM_ACRHIVE_POOL_SIZE to TSM_ARCHIVE_POOL_SIZE.

This was obviously a typo.  Given that the TSM support has been broken
for a while I don't think finally fixing the typo will hurt anyone.
:-)

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoAdd create node help to usage message.
Martin Schwenke [Tue, 5 Jan 2010 02:53:57 +0000 (13:53 +1100)]
Add create node help to usage message.

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoReinstate "autocluster create node" functionality.
Martin Schwenke [Thu, 10 Dec 2009 04:18:26 +0000 (15:18 +1100)]
Reinstate "autocluster create node" functionality.

This was removed several months ago when the node types were
generalised and it didn't seem to make sense at the time.

The new version takes an IP offset as its second argument and creates
the corresponding node.  It doesn't run the create cluster hooks,
since they may do cluster-wide things.

Note that creating a single node can result in an inconsistent
cluster.  For example, the when creating a node that is part of a CTDB
or GPFS cluster the behaviour is not well specified.  However, this
function may be very useful for (re)creating rhel_base and tsm_server
nodes.

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoMake setup_tsm_server.sh script work again.
Martin Schwenke [Wed, 9 Dec 2009 05:49:38 +0000 (16:49 +1100)]
Make setup_tsm_server.sh script work again.

This scripts hasn't received any love since the handling of node types
was generaliased.  Although we're meant to run this script on a
tsm_server node, we use the hostname of the first tsm_server node in
the NODES list.  Similarly, we setup all sofs_front nodes as client
nodes in the server config.

This isn't yet well tested but a quick test suggests that it does
work.

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoCluster node hosts file updates.
Martin Schwenke [Fri, 4 Dec 2009 06:09:42 +0000 (17:09 +1100)]
Cluster node hosts file updates.

Remove default TSM entry from the "all" hosts file.

Add new hosts file for "rhel_base" nodes that does not include
anything for CIFSNAME.  If a rhel_base node is used as a test client
then it should lookup CIFSNAME in DNS and connect via a real IP.

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoCopying a non-existent base template node-type-specific directory is harmless.
Martin Schwenke [Fri, 4 Dec 2009 06:00:52 +0000 (17:00 +1100)]
Copying a non-existent base template node-type-specific directory is harmless.

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoWhen copying base templates, check if node-type-specific directory exists.
Martin Schwenke [Fri, 4 Dec 2009 05:57:05 +0000 (16:57 +1100)]
When copying base templates, check if node-type-specific directory exists.

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoReorganise base templates directory to allow for node-type-specific files.
Martin Schwenke [Fri, 4 Dec 2009 05:25:13 +0000 (16:25 +1100)]
Reorganise base templates directory to allow for node-type-specific files.

* Previous contents of base/ are now in base/all.

* create_node_COMMON() takes an extra argument (inserted as $3) that
  specifies the node type.  All of the create_node_* functions pass
  "$type" for this argument.

* setup_base() now has an optional argument, which is only passed by
  create_node_COMMON.  Rather than simply copying and substituting
  templates for the entire $BASE_TEMPLATES/ subdirectory it now does
  this for $BASE_TEMPLATES/all and then $BASE_TEMPLATES/$type.
  Therefore, the contents of the type-specific directory override the
  contents of "all" directory.

* releases/SoFS.common uses the "all" version of SoFS-postinstall.sh
  when setting POSTINSTALL_TEMPLATE.  This variable also now respects
  $BASE_TEMPLATES instead of hard-coding the base/ subdirectory.

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoNew configuration variable SOFS_REPO_DAILY_SUFFIX.
Martin Schwenke [Fri, 4 Dec 2009 04:49:01 +0000 (15:49 +1100)]
New configuration variable SOFS_REPO_DAILY_SUFFIX.

Allows the suffix of the SoFS daily repository to be configured.  This
is allows you to set the name of this repo to, say "SoFS-2.0-RC" by
setting SOFS_REPO_DAILY_SUFFIX to "2.0-RC".

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoStart with GPFS 3.3.0-0 for SoFS 2.x.
Martin Schwenke [Fri, 4 Dec 2009 04:43:14 +0000 (15:43 +1100)]
Start with GPFS 3.3.0-0 for SoFS 2.x.

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoStop GUIMEM being used for all nodes after a sofs_gui one.
Martin Schwenke [Mon, 16 Nov 2009 22:48:58 +0000 (09:48 +1100)]
Stop GUIMEM being used for all nodes after a sofs_gui one.

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoUpdate README to document dependency on "expect" and to blame firewalls.
Martin Schwenke [Mon, 9 Nov 2009 00:05:44 +0000 (11:05 +1100)]
Update README to document dependency on "expect" and to blame firewalls.

The "waitfor" script uses expect - this wasn't documented.

Installation problems can be blamed on firewalls.  This has been seem
on the current Fedora Core version, which installs a friendly firewall
that won't allow connections to squid.  Add a blame paragraph to the
section on squid.

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoChange IP address of SoFS install server.
Martin Schwenke [Sun, 8 Nov 2009 23:55:57 +0000 (10:55 +1100)]
Change IP address of SoFS install server.

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoFix 2 problems in releases/SoFS.common from addition of SOFS_EXTRA_PACKAGES.
Martin Schwenke [Thu, 1 Oct 2009 09:11:16 +0000 (19:11 +1000)]
Fix 2 problems in releases/SoFS.common from addition of SOFS_EXTRA_PACKAGES.

There were 2 things wrong with commit
734759caf0709b52e358dd61bcc4bfe4dc60907e.

* Remove single quotes around "ibmcim*" - they're not needed and cause
  an error.

* Also remove extra "esac" that was introduced at end of file.

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoMove list of extra SoFS packages to new config variable SOFS_EXTRA_PACKAGES.
Martin Schwenke [Thu, 1 Oct 2009 07:16:51 +0000 (17:16 +1000)]
Move list of extra SoFS packages to new config variable SOFS_EXTRA_PACKAGES.

Having this list of packages hardcoded in the postinstall script is a
maintenance nightmare.  This does the same thing using a variable,
with the default value in releases/SoFS.common.

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoAdd installation of sofs-help package via releases/SoFS.common.
Martin Schwenke [Mon, 28 Sep 2009 01:14:20 +0000 (11:14 +1000)]
Add installation of sofs-help package via releases/SoFS.common.

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoMake setup_gpfs.sh designate quorum nodes more cleanly.
Martin Schwenke [Wed, 23 Sep 2009 11:14:42 +0000 (21:14 +1000)]
Make setup_gpfs.sh designate quorum nodes more cleanly.

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoAdd new configuration option HOSTNAME_HACKING_FUNCTION.
Martin Schwenke [Wed, 23 Sep 2009 03:39:28 +0000 (13:39 +1000)]
Add new configuration option HOSTNAME_HACKING_FUNCTION.

You can define a function in your configuration file to hack cluster
node hostnames (and potentially other things), and set this option to
the name of that function.  This is basically an internal hack to
support hostname naming policies other than the autocluster default.

Note that using this option will probably break vircmd because it has
the allowable node/domain patterns for a cluster hardcoded - sorry
about that!  If you want to use the existing vircmd then you'll have
to pass a cluster name containing wildcards, and you'll need to be
confident that your wildcard patterns are strict enough to only match
nodes in each cluster!  Otherwise you'll have to write a vircmd
replacement that knows about your naming convention.

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoMake README more useful.
Martin Schwenke [Wed, 23 Sep 2009 01:10:22 +0000 (11:10 +1000)]
Make README more useful.

Divide README into more logical sections, explain more things, provide
more examples, ...

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoChange host_setup libvirt network autostart links to be relative.
Martin Schwenke [Mon, 21 Sep 2009 06:54:25 +0000 (16:54 +1000)]
Change host_setup libvirt network autostart links to be relative.

They should link to parent directory, not to an absolute path under
/etc.

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoUpdate conf.base-SoFS to tell vsftpd to use connect_from_port_20=YES.
Martin Schwenke [Mon, 21 Sep 2009 06:28:43 +0000 (16:28 +1000)]
Update conf.base-SoFS to tell vsftpd to use connect_from_port_20=YES.

Thanks to Klaus Smolin and Ronnie Sahlberge.

Signed-off-by: Martin Schwenke <martin@meltin.net>
14 years agoAttempt to set adminMode to allToAll in setup_gpfs.sh to for GPFS 3.3.
Martin Schwenke [Thu, 10 Sep 2009 04:25:24 +0000 (14:25 +1000)]
Attempt to set adminMode to allToAll in setup_gpfs.sh to for GPFS 3.3.

GPFS 3.3 requires that adminMode be set to allToAll for mm commands to
be run from any node.  The redirect from /dev/null ensures that older
versions of GPFS won't get stuck when they prompt you to warn about an
unknown option - hopefully the failure will be graceful.

Signed-off-by: Martin Schwenke <martin@meltin.net>