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

Kaushal M kshlmster at gmail.com
Wed Aug 2 13:08:55 UTC 2017

On Wed, Aug 2, 2017 at 5:03 PM, Prashanth Pai <ppai at redhat.com> wrote:
> 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.

One more change in this regard would be that xlators would now need to
ensure that all options have default values. There are cases where
certain xlators options had default values only in the volopt_map and
not in their own opt table. Also this will remove the possibilty of
the defaults differing between volopt_map and xlator options table.

> We'd like to hear your thoughts, suggestions and comments to these proposed
> changes.
> - Glusterd2 team
> _______________________________________________
> Gluster-devel mailing list
> Gluster-devel at gluster.org
> http://lists.gluster.org/mailman/listinfo/gluster-devel

More information about the Gluster-devel mailing list