---
name: "gfs_controld"
section: "8"
platform: "linux"
package: "gfs2-cluster"
version: "3.1.3-1.2"
release: "Debian 8 (Jessie)"
platforms: ["linux"]
url: "https://new.carta.tech/gfs_controld"
---

# gfs\_controld(8)

daemon that manages mounting, unmounting, recovery and posix locks

## NAME

gfs\_controld - daemon that manages mounting, unmounting, recovery and posix locks

## SYNOPSIS

**gfs\_controld** \[*OPTION*\]...

## DESCRIPTION

GFS lives in the kernel, and the cluster infrastructure (cluster membership and group management) lives in user space.  GFS in the kernel needs to adjust/recover for certain cluster events.  It's the job of gfs\_controld to receive these events and reconfigure gfs as needed. gfs\_controld controls and configures gfs through sysfs files that are considered gfs-internal interfaces; not a general API/ABI.

Mounting, unmounting and node failure are the main cluster events that gfs\_controld controls.  It also manages the assignment of journals to different nodes.  The mount.gfs and umount.gfs programs communicate with gfs\_controld to join/leave the mount group and receive the necessary options for the kernel mount.

GFS also sends all posix lock operations to gfs\_controld for processing. gfs\_controld manages cluster-wide posix locks for gfs and passes results back to gfs in the kernel.

## CONFIGURATION FILE

Optional cluster.conf settings are placed in the \<gfs\_controld\> section.

### Posix locks

Heavy use of plocks can result in high network load.  The rate at which plocks are processed are limited by the *plock\_rate\_limit* setting, which limits the maximum plock performance, and limits potentially excessive network load.  This value is the maximum number of plock operations a single node will process every second.  To achieve maximum posix locking performance, the rate limiting should be disabled by setting it to 0.  The default value is 100.

  \<gfs\_controld plock\_rate\_limit="100"/\>

To optimize performance for repeated locking of the same locks by processes on a single node, *plock\_ownership* can be set to 1.  The default is 0.  If this is enabled, gfs\_controld cannot interoperate with older versions that did not support this option.

  \<gfs\_controld plock\_ownership="1"/\>

Three options can be used to tune the behavior of the plock\_ownership optimization.  All three relate to the caching of lock ownership state. Specifically, they define how aggressively cached ownership state is dropped. More caching of ownership state can result in better performance, at the expense of more memory usage.

*drop\_resources\_time* is the frequency of drop attempts in milliseconds.  Default 10000 (10 sec).

*drop\_resources\_count* is the maximum number of items to drop from the cache each time.  Default 10.

*drop\_resources\_age* is the time in milliseconds a cached item should be unused before being considered for dropping.  Default 10000 (10 sec).

  \<gfs\_controld drop\_resources\_time="10000" drop\_resources\_count="10"\
    drop\_resources\_age="10000"/\>

## OPTIONS

- **-D**

  Run the daemon in the foreground and print debug statements to stdout.

- **-P**

  Enable posix lock debugging messages.

- **-w**

  Disable the "withdraw" feature.

- **-p**

  Disable posix lock handling.

- **-l** \<num\>

  Limit the rate at which posix lock messages are sent to \<num\> messages per second.  0 disables the limit and results in the maximum performance of posix locks. Default 100.

- **-o** \<num\>

  Enable (1) or disable (0) plock ownership optimization. Default 0.  All nodes must run with the same value.

- **-t** \<ms\>

  Ownership cache tuning, drop resources time (milliseconds). Default 10000.

- **-c** \<ms\>

  Ownership cache tuning, drop resources count. Default 10.

- **-a** \<ms\>

  Ownership cache tuning, drop resources age (milliseconds). Default 10000.

- **-h**

  Print out a help message describing available options, then exit.

- **-V**

  Print the version information and exit.

## DEBUGGING

The gfs\_controld daemon keeps a circular buffer of debug messages that can be dumped with the 'group\_tool dump gfs' command.

The state of all gfs posix locks can also be dumped from gfs\_controld with the 'group\_tool dump plocks \<fsname\>' command.

## SEE ALSO

[groupd(8)](/groupd/8.md), [group\_tool(8)](/group_tool/8.md)
