GlusterFS Command-line Arguments

From GlusterDocumentation

Jump to: navigation, search

FIXME: WORK IN PROGRESS

Contents

GlusterFS Client Options

bash-3.00# glusterfs --help
Usage: glusterfs [OPTION...] --server=SERVER MOUNT-POINT
glusterfs is client component of GlusterFS filesystem

  -a, --attr-timeout=SECONDS Attribute timeout for inodes in the kernel.
                             Defaults to 1 second
  -d, --direct-io-mode=ENABLE|DISABLE
                             Whether to force directIO on fuse fd. Defaults to
                             ENABLE
  -e, --entry-timeout=SECONDS   Entry timeout for dentries in the kernel.
                             Defaults to 1 second
  -f, --spec-file=VOLUMESPEC-FILE
                             Load a local VOLUMESPEC file. Mandatory if
                             --server option is not passed.
  -l, --log-file=LOGFILE     Specify the file to redirect logs
  -L, --log-level=LOGLEVEL   LOGLEVEL should be one of DEBUG, WARNING, [ERROR],
                             CRITICAL, NONE
  -n, --volume-name=VOLUME-NAME   Volume name in client spec to use. Defaults
                             to the topmost volume
  -N, --no-daemon            Run glusterfs in foreground
  -P, --port=PORT            Connect to PORT on SERVER
  -s, --server=SERVER        SERVER to connect to get client specification.
                            This is a mandatory option.
  -t, --transport=TRANSPORT  Transport type to get the spec from server
  -?, --help                 Give this help list
      --usage                Give a short usage message
      --version              Print program version
  -V, --version              print version information

Mandatory or optional arguments to long options are also mandatory or optional
for any corresponding short options. 

Report bugs to glusterfs-support@zresearch.com.
bash-3.00# 

'-a' --attr-timeout=SECONDS

'-d' --direct-io-mode=ENABLE|DISABLE

This is 'enable' by default. But when one needs to use GlusterFS mountpoint as NFS export, then, '-d disable' should be given.

'-e' --entry-timeout=SECONDS

'-f' --spec-file=VOLUMESPEC-FILE

Path to volume specification file

'-l' --log-file=LOGFILE

'-L' --log-level=LOGLEVEL

'-n' --volume-name=VOLUME-NAME

You can only specify one '-n' option. This will be the brick that GlusterFS client will mount. The default is to mount the last brick at the volume spec file.

Imagine the following case:

volume client1
      type protocol/client
      option transport-type tcp/client
      option remote-host 127.0.0.1
      option remote-subvolume brick1
end-volume

volume client2
      type protocol/client
      option transport-type tcp/client
      option remote-host 127.0.0.1
      option remote-subvolume brick2
end-volume

volume afr
      type cluster/afr
      subvolumes client1 client2
      option replicate *:2
      option self-heal on
end-volume

volume writebehind
      type performance/write-behind
      subvolumes afr
end-volume

If you 'glusterfs (all options) -n client1 /mnt/gluster' you will mount only the client1 brick there. If you 'glusterfs (all options) -n client2 /mnt/gluster' you will mount only the client2 brick there. Them you can 'df -h' on each and see who Gluster is seeing them before AFR.

Now, if you 'glusterfs (all options) -n afr /mnt/gluster' you will mount both bricks, but now following the AFR rules, and without the writebehind translator active. Here you can do some benchmarking to measure, latter, how good writebehind is for you.

If you only 'glusterfs (all options but -n) /mnt/gluster)', the last (writebehind) brick will be mounted. So now you access all the chain from the beginning to the end.

It makes very little sense to 'glusterfs -n brick1 -n brick2' because GlusterFS does not know how to work with two translators at the same time. How would it know if it would have to distribute files between the bricks or to replicate them?

GlusterFS can only connect to one brick. This brick, depending on it's translator logic, can connect to one or more bricks and do whatever it wants with them, but Gluster has to have a unique starting point always.

'-N' --no-daemon

'-P' --port=PORT

Used as an option with '-s' if the port used by the server is not default (!6996).

'-s' --server=SERVER

Server's hostname/ip address from which client volume specification file should be fetched.

'-t' --transport=TRANSPORT

Personal tools