config-gfarm is a utility to set up a metadata server of Gfarm file system. The server program for a metadata server is named gfmd. config-gfarm is required to be run with the root privilege, unless you use the file system for private purpose such as development, evaluation or test of Gfarm.
config-gfarm performs the following processes, in that order:
Set up the backend database.
Generate Gfarm configuration files
%%SYSCONFDIR%%/gfarm2.conf and
%%SYSCONFDIR%%/gfmd.conf.
Create scripts (or configuration files) to start/stop the backend database and gfmd.
On most systems, config-gfarm puts
start/stop scripts gfmd and
gfarm-pgsql onto either
/etc/init.d or
/etc/rc.d/init.d, according to the
operating system.
On Linux with systemd such as Red Hat Enterprise Linux 7 or later,
config-gfarm puts the unit configuration
files gfmd.service and
gfarm-pgsql.service onto
/etc/systemd/system, and then executes
systemctl enable gfmd.service and
systemctl enable gfarm-pgsql.service
respectively.
Start the backend database and gfmd.
Before set up a metadata server using
config-gfarm,
it is recommended to execute
config-gfarm -t.
With -t option, the sets up is not performed.
Instead, it shows values of all configurable parameters:
$ config-gfarm -t prefix [--prefix]: metadata backend [-b]: postgresql (available backend: postgresql ) metadata directory [-l]: /var/gfarm-pgsql metadata log directory [-L]: /var/gfarm-pgsql/pg_xlog postgresql admin user [-U]: miles postgresql admin password [-W]: (auto generated) postgresql user [-u]: gfarm postgresql password [-w]: (auto generated) postgresql prefix [-P]: /usr postgresql version [-V]: 9.2 postgresql XML supported [-X]: no metadata replication [-r]: no metaserver hostname [-h]: host1.example.org matadata admin user [-A]: miles matadata admin dn [-D]: portmaster port [-p]: 10602 gfmd port [-m]: 601 auth type [-a]: sharedsecret rc script for gfmd : /etc/init.d/gfmd rc script for backend : /etc/init.d/gfarm-pgsql gfmd conf file : /etc/gfmd.conf gfarm client conf file : /etc/gfarm2.conf gfmd pid file : /var/run/gfmd.pid backend pid file : /var/run/postmaster.pid
The option name surrounded by [ ] means that you can specify a value with that option.
--prefix pathConfigure some paths related to gfmd and the backend database. Specifically, the followings are affected.
The directory to put metadata of Gfarm.
That is PREFIX/var/gfarm-pgsql if
the backend database is PostgreSQL.
The path can also be changed by -l option.
When both options are specified, -l option has preference.
The directory to put log files about metadata.
That is PREFIX/var/gfarm-pgsql/pg_xlog
if the backend database is PostgreSQL.
The path can also be changed by -L option.
When both options are specified, -L option has preference.
The directory to put journal files of
gfmd.
That is
PREFIX/var/gfarm-metadata/journal.
The path can also be changed by -j option.
When both options are specified, -j option has preference.
The directory to put PID files of gfmd
and the backend database.
That is PREFIX/var/run.
The directory to put configuration files.
That is PREFIX/etc.
The directory of start/stop scripts for
gfmd and its backend database.
That is PREFIX/etc/init.d or
PREFIX/rc.d/init.d/etc which is
depending on operating systems.
If systemd is running on the host, there is a special exception.
When an empty prefix is given by --prefix option on
such host, config-gfarm doesn't
put unit configuration files for systemd.
Instead, it puts traditional start/stop scripts at
PREFIX/etc/init.d.
The unconfiguration script unconfig-gfarm.sh. That is PREFIX/etc/unconfig-gfarm.sh.
The default is "" (empty).
-b backendSpecify backend database. It currently supports "postgresql" (for PostgreSQL) only. "ldap" (for LDAP) was supported in the past, but not maintained any longer. config-gfarm -t lists which backend databases are available.
PostgreSQL is chosen by default if "postgresql" is in the list. If the available backend is "ldap" only, it is still chosen by default. Note that you need to recompile Gfarm if you'd like to make Gfarm on your system support a backend database not in the list.
-d digest_type
Enable checksum calculation and specify the digest type of the checksum.
The digest_type argument is a
lower-case name which is supported by the OpenSSL library on the host,
such as "md5".
-U usernameSpecify administrator's username of the Gfarm file system. Since the default value differs depending on operating systems, execute config-gfarm -t to confirm the username.
-u usernameThe configured gfmd will connect to the backend database as the specified username. The default is "gfarm".
-P prefix
Specify an installation prefix of the backend database (e.g. /usr/local).
When config-gfarm executes an
administration command of the backend database, it assumes the command is
installed under the given prefix.
An example of those commands is
initdb of PostgreSQL.
If this option is omitted, config-gfarm
searches directories listed in the environment variable PATH
for the commands.
-V versionTell version of the backend database to config-gfarm. In most cases, config-gfarm can detect a correct version number by itself. This option should be used only when config-gfarm fails to get the correct version number.
-l directorySpecify a path to the directory where the backend database puts files to store metadata of Gfarm.
If the backend database is PostgreSQL, the directory is commonly called
PGDATA directory.
The default is PREFIX/var/gfarm-pgsql
where PREFIX is a prefix given by --prefix option.
-L directory
Specify a path to the directory where the backend database puts log files.
If the backend database is PostgreSQL, the default is
PREFIX/var/gfarm-pgsql/pg_xlog where
PREFIX is a prefix given by --prefix option.
-h hostnameSpecify a hostname which is used to identify the metadata server. The default is the fully qualified domainname of the host.
-j directory
Specify a path to the directory where
gfmd puts journal files.
This option takes an effect only when metadata replication is enabled by
-r option.
The default value is
PREFIX/var/gfarm-metadata/journal
where PREFIX is a prefix given by --prefix option.
-A usernameSpecify administrator of the Gfarm file system. If this option is omitted, config-gfarm gets a username by executing who am i command.
-D subject-dnSpecify a subject DN of global administrator. This option is mandatory, in case that the authentication method is GSI,
-p portSpecify a TCP port number the configured backend database listens on. The default is 10602.
-m portSpecify a TCP port number the configured gfmd listens on. The default value is 10601 in case of the private mode, 601 otherwise.
-a methodSpecify an authentication method. It currently recognizes "sharedsecret" or "gsi". The default is "sharedsecret".
--helpShow usage, then exit.
-SEnable the private mode. config-gfarm sets up the Gfarm file system which can be run without root privilege. Specifically, config-gfarm changes the configuration procedures as follows:
The default listen port of gfmd
(corresponding with -m option) is changed from 601
to 10601.
The user map file
%%SYSCONFDIR%%/usermap
is also created.
The metadata server reads this file when it starts.
In the non-private mode, it is required to create the user accounts for
_gfarmmd and _gfarmfs on the operating system.
With the user map file, the creation of the user accounts is not needed.
The file defines mappings of Gfarm system users to actual user accounts.
The configuration file for gfsd,
%%SYSCONFDIR%%/gfsd.conf is also
created.
In the non-private mode, gfsd reads the configuration file
%%SYSCONFDIR%%/gfarm2.conf instead,
which is read by all Gfarm programs connecting with a metadata server.
%%SYSCONFDIR%%/gfsd.conf is a
configuration file cutomized for gfsd running under the private mode.
-S option never changes locations of start/stop scripts
and configuration files.
Since the default locations of those files are usually writable only for
privilege users, config-gfarm fails to
create them.
To avoid this problem, also specify --prefix option.
-NDo not start gfmd or the backend database.
-fForce overwriting an existing set up.
-tShow values of all configurable parameters in human readable format, then exit immediately.
-T
Like -t option, but it shows values in KEY=VALUE format.
-rEnable metadata replication among metadata servers.
-W password
Specify administrator's password of backend database.
This option corresponds with -U option which specifies
the username.
By default, the password is generated automatically.
-w password
The configured gfmd will connect the
backend database with the specified password.
This option corresponds with -u option which specifies
the username.
By default, the password is generated automatically.
-XEnable XML Path Language (XPath) support for querying XML extended attributes.
-E
Set up PostgreSQL with the data checksums option.
config-gfarm gives
--data-checksums option to
initdb command of PostgreSQL.
Note that PostgreSQL 9.3 or later is required to use this feature.
This option takes an effect only when the backend database is PostgreSQL.
%%SYSCONFDIR%%/gfarm2.confconfiguration file for Gfarm clients
%%SYSCONFDIR%%/gfmd.confconfiguration file for gfmd
%%SYSCONFDIR%%/gfsd.confconfiguration file for gfsd (used only in the private mode)
%%SYSCONFDIR%%/usermapuser mapping definition file (used only in the private mode)
/etc/init.d/gfarm-pgsqlstart/stop script for PostgreSQL running as backend database of Gfarm
/etc/init.d/gfmdstart/stop script for gfmd
/etc/systemd/system/gfarm-pgsql.serviceunit configuration file for PostgreSQL running as backend database of Gfarm, read by systemd
/etc/systemd/system/gfmd.serviceunit configuration file for gfmd, read by systemd