mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2026-05-24 03:08:51 +03:00
Add zgenhostid utility script
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
This commit is contained in:
committed by
Brian Behlendorf
parent
ffb195c256
commit
b9373170e3
@@ -2177,7 +2177,7 @@ show_import(nvlist_t *config)
|
||||
break;
|
||||
case ZPOOL_STATUS_HOSTID_REQUIRED:
|
||||
(void) printf(gettext(" action: Set a unique system "
|
||||
"hostid with the genhostid(1) command.\n"));
|
||||
"hostid with the zgenhostid(8) command.\n"));
|
||||
break;
|
||||
default:
|
||||
(void) printf(gettext(" action: The pool cannot be "
|
||||
@@ -2304,7 +2304,7 @@ do_import(nvlist_t *config, const char *newname, const char *mntopts,
|
||||
(void) fprintf(stderr, gettext("Cannot import '%s': "
|
||||
"pool has the multihost property on and the\n"
|
||||
"system's hostid is not set. Set a unique hostid "
|
||||
"with the genhostid(1) command.\n"), name);
|
||||
"with the zgenhostid(8) command.\n"), name);
|
||||
} else {
|
||||
char *hostname = "<unknown>";
|
||||
uint64_t timestamp = 0;
|
||||
|
||||
Reference in New Issue
Block a user