In the current state of Debian systems, individual clustering related software have their own configuration files. They are duplicate configuration entries, and they needed unification.
These individual configuration files are user-customized, and really should not ignorantly be overwritten by automatic scripts. We needed some automation, under control.
The aim of this project is to simplify the bulk configuration process for everyday tasks, and centralising the network related configuration files which had no standard base. Reliably obtaining a list of machines that is part of a on Debian cluster system was not possible.
This program attempts to provide auto configuration on master node of a cluster. Other nodes in a cluster is out of scope of the program currently. The system is to be designed to use minimum network bandwidth on communicating information. Currently it doesn't use any.
The basic model of update-cluster is this: A system administrator edits cluster.xml configuration file, and runs update-cluster-regenerate all to regenerate configuration files for applications.
cluster.xml is a configuration file, and when installing update-cluster for the first time, the user is asked for reasonable default value by a debconf interface, if cluster.xml does not already exist. When the file exists, debconf interface will not touch it.
The sysadmin may use update-cluster-add or other means to add information. For information of the localhost, make it marked as master in the notes element. Usually ifconfig eth0 gives the necessary information. Input the information with a command line like
# update-cluster-add --ip 192.168.1.1 --mac xx:xx:xx:xx:xx:xx --hostname beomaster --notes master |
The update-cluster system concept is to construct a " write-once, and everything works " kind of system.
The configuration information is held in cluster.xml file. An arbitrary editor or the command update-cluster-add may be used to edit the configuration file. Especially, auto-configuration programs may want to use update-cluster-add program.
update-cluster-regenerate reads cluster.xml and generates configuration files from it. This is done using *.updatelist scripts to do actual work. These *.updatelist scripts are provided by individual application packages.
This way update-cluster provides the infrastructure, which each package can depend upon.
The configuration file cluster.xml is located in /etc/update-cluster/cluster.xml and it contains list of host-based configurations, written in XML. The DTD for this configuration file is found in /usr/share/update-cluster/cluster.dtd.
When it says it is a master, it means it is the cluster master node, and is usually the localhost in the current model of update-cluster.
This file has not been discussed in detail yet, and not have been decided. The file may be an XML file, may be not. It should be discussed.
It has been discussed that NFS might not fit in cluster.xml design, and possibility of requiring a systemwide configuration.
There are several programs constructing the system of update-cluster. For details of these commands, see their manual pages.
update-cluster-add appends an entry to cluster.xml. Editing the XML configuration file by hand might be better for system administrators. This program is provided to allow automatic configuration programs to edit the configuration file with ease.
update-cluster-remove without any options just outputs XML file with contents reformatted with indents.
The program can be used to remove certain entries from cluster.xml. Mostly used in conjunction with update-cluster-parseconfig.
Reads in the XML configuration file, and outputs a space-delimited line-based data, usually suitable for conventional configuration file.
Used in *.updatelist files to generate the individual configuration files.
update-cluster-regenerate regenerates the configuration files for individual applications from cluster.xml
This program calls *.updatelist files to do actual updating.
To provide support for update-cluster in Debian packages, the package needs to provide *.updatelist to regenerate the configuration file for the application. The content of the file is actually a shell script parsing the content of file specified by environmental variable CLUSTERXML.
The script must be installed with filename extension .updatelist in /usr/lib/update-cluster/ as an executable file. Also, the package needs to have a Suggests: line to suggest update-cluster
Alternatively, a program can add a Depends: on update-cluster and call update-cluster-regenerate [command-radix] in the package postinst. Note that the configuration file must not be marked as a conffile when doing this, and also note that user configuration files must not be ignorantly overwritten by automatic scripts.
The current system is fixed with regards to "hostname", "ip", "mac" and "notes" information. For "notes", only "master" is defined. Using these information is encouraged.
For other information, discussion of how to store the information in the cluster.xml file is required.
Currently the following packages support the update-cluster system: dsh, jmon, lam, mosix, mpich, rarpd
This document is about usage policy of update-cluster suite. The documentation is not meant to be the final word.
This document accompanies version 0.10 of update-cluster
The author is Junichi Uekawa, <dancer@debian.org> <dancer@netfort.gr.jp> <dancer@mikilab.doshisha.ac.jp>. Main discussion about update-cluster has occurred in <debian-beowulf@lists.debian.org> mailing list, and please discuss about this document in Debian Beowulf mailing list.