Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
HASTCTL(8)		     System Manager's Manual		      HASTCTL(8)

NAME
     hastctl -- Highly Available Storage control utility

SYNOPSIS
     hastctl create [-d] [-c config] [-e extentsize] [-k keepdirty]
	     [-m mediasize] name ...
     hastctl role [-d] [-c config] <init | primary | secondary> all | name ...
     hastctl list [-d] [-c config] [all | name ...]
     hastctl status [-d] [-c config] [all | name ...]
     hastctl dump [-d] [-c config] [all | name ...]

DESCRIPTION
     The  hastctl  utility is used to control the behaviour of the hastd(8) dae-
     mon.

     This utility should be used by HA software like heartbeat or ucarp to setup
     HAST resources role when changing from primary mode to  secondary	or  vice
     versa.  Be aware that if a file system like UFS exists on HAST provider and
     primary  node  dies, file system has to be checked for inconsistencies with
     the fsck(8) utility after switching secondary node to primary role.

     The first argument to hastctl indicates an action to be performed:

     create  Initialize local provider configured for the given resource.  Addi-
	     tional options include:

	     -e extentsize  Size of an extent.	Extent is a block which is  used
			    for  synchronization.   hastd(8)  maintains a map of
			    dirty extents and extent is the smallest region that
			    can be marked as dirty.  If any part of an extent is
			    modified, entire extent will  be  synchronized  when
			    nodes  connect.   If extent size is too small, there
			    will be too much disk activity related to dirty  map
			    updates, which will degrade performance of the given
			    resource.  If extent size is too large, synchroniza-
			    tion,  even in case of short outage, can take a long
			    time increasing the risk of losing	up-to-date  node
			    before  synchronization  process  is completed.  The
			    default extent size is 2MB.

	     -k keepdirty   Maximum number of dirty extents to	keep  dirty  all
			    the time.  Most recently used extents are kept dirty
			    to	reduce	number of metadata updates.  The default
			    number of most recently used extents which	will  be
			    kept dirty is 64.

	     -m mediasize   Size of the smaller provider used as backend storage
			    on	both  nodes.  This option can be omitted if node
			    providers have the same size on both sides.

	     If size is suffixed with a k, M, G or T, it is taken as a kilobyte,
	     megabyte, gigabyte or terabyte measurement respectively.

     role    Change role of the given resource.  The role can be one of:

	     init	Resource is turned off.

	     primary	Local hastd(8) daemon will act as primary node	for  the
			given resource.  System on which resource role is set to
			primary can use /dev/hast/<name> GEOM provider.

	     secondary	Local hastd(8) daemon will act as secondary node for the
			given  resource  -  it will wait for connection from the
			primary node and will handle I/O requests received  from
			it.   GEOM provider /dev/hast/<name> will not be created
			on secondary node.

     list    Present verbose status of the configured resources.

     status  Present terse (and more easy machine-parseable) status of the  con-
	     figured resources.

     dump    Dump  metadata  stored  on  local	component for the configured re-
	     sources.

     In addition, every subcommand can be followed by the following options:

     -c config	Specify alternative location of the configuration file.  The de-
		fault location is /etc/hast.conf.

     -d 	Print debugging information.  This option can be specified  mul-
		tiple times to raise the verbosity level.

FILES
     /etc/hast.conf    Configuration file for hastctl and hastd(8).
     /var/run/hastctl  Control	socket	used  by hastctl to communicate with the
		       hastd(8) daemon.

EXIT STATUS
     Exit status is 0 on success, or one of the values described in  sysexits(3)
     on failure.

EXAMPLES
     Initialize HAST provider, create file system on it and mount it.

	   nodeB# hastctl create shared
	   nodeB# hastd
	   nodeB# hastctl role secondary shared

	   nodeA# hastctl create shared
	   nodeA# hastd
	   nodeA# hastctl role primary shared
	   nodeA# newfs -U /dev/hast/shared
	   nodeA# mount -o noatime /dev/hast/shared /shared
	   nodeA# application_start

     Switch roles for the shared HAST resource.

	   nodeA# application_stop
	   nodeA# umount -f /shared
	   nodeA# hastctl role secondary shared

	   nodeB# hastctl role primary shared
	   nodeB# fsck -t ufs /dev/hast/shared
	   nodeB# mount -o noatime /dev/hast/shared /shared
	   nodeB# application_start

SEE ALSO
     sysexits(3),   geom(4),   hast.conf(5),   fsck(8),   ggatec(8),  ggatel(8),
     hastd(8), mount(8), newfs(8)

HISTORY
     The hastctl utility appeared in FreeBSD 8.1.

AUTHORS
     The hastctl was developed by Pawel Jakub  Dawidek	<pjd@FreeBSD.org>  under
     sponsorship of the FreeBSD Foundation.

FreeBSD ports 15.1		September 8, 2016		      HASTCTL(8)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=hastctl&manpath=FreeBSD+15.1-RELEASE+and+Ports>

home | help