b9373170e3
Turning the multihost property on requires that a hostid be set to allow ZFS to determine when a foreign system is attemping to import a pool. The error message instructing the user to set a hostid refers to genhostid(1). Genhostid(1) is not available on SUSE Linux. This commit adds a script modeled after genhostid(1) for those users. Zgenhostid checks for an /etc/hostid file; if it does not exist, it creates one and stores a value. If the user has provided a hostid as an argument, that value is used. Otherwise, a random hostid is generated and stored. This differs from the CENTOS 6/7 versions of genhostid, which overwrite the /etc/hostid file even though their manpages state otherwise. A man page for zgenhostid is added. The one for genhostid is in (1), but I put zgenhostid in (8) because I believe it's more appropriate. The mmp tests are modified to use zgenhostid to set the hostid instead of using the spl_hostid module parameter. zgenhostid will not replace an existing /etc/hostid file, so new mmp_clear_hostid calls are required. Reviewed-by: Giuseppe Di Natale <dinatale2@llnl.gov> Reviewed-by: Andreas Dilger <andreas.dilger@intel.com> Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Olaf Faaland <faaland1@llnl.gov> Closes #6358 Closes #6379
73 lines
2.0 KiB
Groff
73 lines
2.0 KiB
Groff
.\"
|
|
.\" CDDL HEADER START
|
|
.\"
|
|
.\" The contents of this file are subject to the terms of the
|
|
.\" Common Development and Distribution License (the "License").
|
|
.\" You may not use this file except in compliance with the License.
|
|
.\"
|
|
.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
|
|
.\" or http://www.opensolaris.org/os/licensing.
|
|
.\" See the License for the specific language governing permissions
|
|
.\" and limitations under the License.
|
|
.\"
|
|
.\" When distributing Covered Code, include this CDDL HEADER in each
|
|
.\" file and include the License file at usr/src/OPENSOLARIS.LICENSE.
|
|
.\" If applicable, add the following below this CDDL HEADER, with the
|
|
.\" fields enclosed by brackets "[]" replaced with your own identifying
|
|
.\" information: Portions Copyright [yyyy] [name of copyright owner]
|
|
.\"
|
|
.\" CDDL HEADER END
|
|
.\"
|
|
.\"
|
|
.\" Copyright (c) 2017 by Lawrence Livermore National Security, LLC.
|
|
.\"
|
|
.Dd July 24, 2017
|
|
.Dt ZGENHOSTID 8 SMM
|
|
.Os Linux
|
|
.Sh NAME
|
|
.Nm zgenhostid
|
|
.Nd generate and store a hostid in
|
|
.Em /etc/hostid
|
|
.Sh SYNOPSIS
|
|
.Nm
|
|
.Op Ar hostid
|
|
.Sh DESCRIPTION
|
|
If
|
|
.Em /etc/hostid
|
|
does not exist, create it and store a hostid in it. If the user provides
|
|
.Op Ar hostid
|
|
on the command line, store that value. Otherwise, randomly generate a
|
|
value to store.
|
|
.Pp
|
|
This emulates the
|
|
.Xr genhostid 1
|
|
utility and is provided for use on systems which do not include the utility.
|
|
.Pp
|
|
.Sh OPTIONS
|
|
.Op Ar hostid
|
|
Specifies the value to be placed in
|
|
.Em /etc/hostid .
|
|
It must be a number with a value between 1 and 2^32-1. This value
|
|
.Sy must
|
|
be unique among your systems. It must be expressed in hexadecimal and be
|
|
exactly 8 digits long.
|
|
.Sh EXAMPLES
|
|
.Bl -tag -width Ds
|
|
.It Generate a random hostid and store it
|
|
.Bd -literal
|
|
# zgenhostid
|
|
.Ed
|
|
.It Record the libc-generated hostid in Em /etc/hostid
|
|
.Bd -literal
|
|
# zgenhostid $(hostid)
|
|
.Ed
|
|
.It Record a custom hostid (0xdeadbeef) in Em etc/hostid
|
|
.Bd -literal
|
|
# zgenhostid deadbeef
|
|
.Ed
|
|
.El
|
|
.Sh SEE ALSO
|
|
.Xr spl-module-parameters 5 ,
|
|
.Xr genhostid 1 ,
|
|
.Xr hostid 1
|