Translators/protocol

From GlusterDocumentation

These modules enable communication between machines using the efficient GlusterFS protocol.

This information is out of date
and does not contain information related to the current version of Gluster

Documentation Home


Translator protocol/server

Server translator allows you to export volumes over the network. This translator implements transport modules for various interconnects.

### Add network serving capability to volumes 'brick1' and 'brick2'.
volume server
  type protocol/server
  option transport-type tcp               # For TCP/IP transport
  subvolumes brick1 brick2
  option auth.addr.brick1.allow 192.168.* # Allow access to "brick1" volume
  option auth.addr.brick2.allow 192.168.* # Allow access to "brick2" volume
end-volume


  • transport-type

This option specifies the type of transport module to use. Available transport modules for server protocol are:

    • tcp

This is the transport for TCP/IP socket based communication. The options which are applicable when this transport is used are:

      • transport.socket.listen-port / transport.listen-port / listen-port

This is port number on which the server will listen for incoming connections. The default port for tcp is 6996.

      • transport.socket.bind-address / bind-address

This is the IP address on which the server will bind and listen. By default the server listens on all interfaces (0.0.0.0).


    • unix

This is the transport for UNIX domain socket based communication. The options which are applicable when this transport is used are:

      • transport.socket.listen-path / listen-path

The UNIX path on which the socket is created and the server listens for incoming connections.


    • ib-sdp:

This is the infiniband Sockets Direct Protocol transport interface. The options are the same as 'tcp


    • ib-verbs:

This is the Infiniband Verbs transport interface. The options which are valid when using 'ib-verbs' transport are:

      • transport.ib-verbs.device-name / ib-verbs-device-name

This is the name of the Infiniband device to use. The default device is the first one which gets listed in ibv_devinfo command.

      • transport.ib-verbs.port

This is the physical port number to use on the device. The default port is 1.

      • listen-port / transport.remote-port / transport.ib-verbs.remote-port

The TCP port to listen for incoming Infiniband handshakes. The default port is 6997.


Authenticate modules

In order to allow multiple IP addresses or subnets, specify the IP address one after the other in comma separated pattern, like shown below.

option auth.addr.brick1.allow 192.168.1.10,192.168.1.20,192.168.2.*

As security is the growing need with storing data and GlusterFS being one of the network filesystems, the need for Authenticating client before connecting is very high. Currently glusterfs supports authentication modules, which has two modes of authentication as of now.

  • addr
  • login

auth.addr

This module gives authentication based on the ip of the client (connecting) machine. Options provided are

option auth.addr.<VOLUMENAME>.allow <List of IP addrs> # seperated by comma ','
option auth.addr.<VOLUMENAME>.reject <List of IP addrs> # seperated by comma ','

This option is required only in protocol/server volume.

    • auth.addr.*.allow

Specification for allowing access to volumes. '*' should be one of the subvolume names

    • auth.addr.*.reject

Specification for rejecting access to volumes. '*' should be one of the subvolume names


auth.login

This module gives username/passwd type of authentication.

Options in protocol/server:

option auth.login.<VOLUMENAME>.allow <list of users> # seperated by comma
option auth.login.<USERNAME>.password <PASSWORD> 
    • auth.login.*.allow

Specification for allowing access to volumes.'*' should be one of the subvolume name

    • auth.login.*.password

Specification for rejecting access to volumes. '*' should be the 'username' used in above option


Corresponding options in protocol/client when auth.login is used.

option username <USERNAME>
option password <PASSWORD>

Translator protocol/client

Client translator allows you to attach to remote volumes exported by GlusterFS servers.

### Add client feature and attach to remote subvolume of server1
volume client1
  type protocol/client
  option transport-type tcp              # for TCP/IP transport
  option remote-subvolume brick          # name of the remote volume
end-volume
  • transport-type

This option specifies the type of transport to use for reaching the server. They can be tcp, ib-sdp, ib-verbs or unix

  • remote-host

This option specifies the hostname or IP address of the remote server.

  • remote-port

This option specifies the port number on the remote host to connect to. The default value depends on the transport used (6996 for tcp and 6997 for ib-verbs)

  • username and password

These are the specification of authentication information when the login auth module is used on the server.

  • remote-subvolume

Since the server can export multiple volumes, this selects the volume name to connect to.

  • frame-timeout

This is the timeout value for operation frames to be considered dead before the return. The default is 1800 seconds. Keep this high.

  • ping-timeout

This is the timeout in which the server should respond for internal ping operations. The purpose of this option is to disconnect unresponsive servers immediately. The default is 10 seconds.

Client protocol also uses same transport modules that are listed in server protocol volume, above.

 

Copyright © Gluster, Inc. All Rights Reserved.