[Gluster-devel] Glusterd2 - Some anticipated changes to glusterfs source

Prashanth Pai ppai at redhat.com
Wed Aug 2 11:33:35 UTC 2017


Hi all,

The ongoing work on glusterd2 necessitates following non-breaking and
non-exhaustive list of changes to glusterfs source code:

Port management
- Remove hard-coding of glusterd's port as 24007 in clients and elsewhere.
  Glusterd2 can be configured to listen to clients on any port (still
defaults to
  24007 though)
- Let the bricks and daemons choose any available port and if needed report
  the port used to glusterd during the "sign in" process. Prasanna has a
patch
  to do this.
- Glusterd <--> brick (or any other local daemon) communication should
  always happen over Unix Domain Socket. Currently glusterd and brick
  process communicates over UDS and also port 24007. This will allow us
  to set better authentication and rules for port 24007 as it shall only be
used
  by clients.

Changes to xlator options
- Xlator authors do not have to modify glusterd2 code to expose new xlator
  options. IOW, glusterd2 will not contain the "glusterd_volopt_map" table.
  Most of its fields will be moved to the xlator itself. Glusterd2 can load
  xlator's shared object and read it's volume_options table. This also means
  xlators have to adhere to some naming conventions for options.
- Add following additional fields (names are indicative) to volume_option_t:
    - Tag: This is to enable users to list only options having a certain
tag.
             IOW, it allows us to filter "volume set help" like output.
             Example of tags: debug, perf, network etc.
    - Opversion: The minimum (or a range) op-version required by the xlator.
    - Configurable: A bool to indicate whether this option is
user-configurable.
                          This may also be clubbed with DOC/NO_DOC
functionality.
- Xlators like AFR, changelog require non-static information such as brick
path
  to be present in it's options in the volfile. Currently, xlator authors
have
  to modify glusterd code to get it.
  This can rather be indicated by the xlator itself using
templates/placehoders.
  For example, "changelog-dir" can be set in xlator's option as as
  <<brick-path>>/.glusterfs/changelogs and then glusterd2 will ensure to
replace
  <<brick-path>> with actual path during volfile generation.

We'd like to hear your thoughts, suggestions and comments to these proposed
changes.

- Glusterd2 team
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gluster.org/pipermail/gluster-devel/attachments/20170802/696e614e/attachment.html>


More information about the Gluster-devel mailing list