<div dir="ltr">Hi all,<div><br></div><div><div>The ongoing work on glusterd2 necessitates following non-breaking and</div><div>non-exhaustive list of changes to glusterfs source code: </div><div><br></div><div>Port management</div><div>- Remove hard-coding of glusterd&#39;s port as 24007 in clients and elsewhere.</div><div>  Glusterd2 can be configured to listen to clients on any port (still defaults to</div><div>  24007 though)</div><div>- Let the bricks and daemons choose any available port and if needed report</div><div>  the port used to glusterd during the &quot;sign in&quot; process. Prasanna has a patch</div><div>  to do this.</div><div>- Glusterd &lt;--&gt; brick (or any other local daemon) communication should</div><div>  always happen over Unix Domain Socket. Currently glusterd and brick</div><div>  process communicates over UDS and also port 24007. This will allow us</div><div>  to set better authentication and rules for port 24007 as it shall only be used</div><div>  by clients.</div><div><br></div><div>Changes to xlator options</div><div>- Xlator authors do not have to modify glusterd2 code to expose new xlator</div><div>  options. IOW, glusterd2 will not contain the &quot;glusterd_volopt_map&quot; table.</div><div>  Most of its fields will be moved to the xlator itself. Glusterd2 can load</div><div>  xlator&#39;s shared object and read it&#39;s volume_options table. This also means</div><div>  xlators have to adhere to some naming conventions for options.</div><div>- Add following additional fields (names are indicative) to volume_option_t:</div><div>    - Tag: This is to enable users to list only options having a certain tag.</div><div>             IOW, it allows us to filter &quot;volume set help&quot; like output.</div><div>             Example of tags: debug, perf, network etc.</div><div>    - Opversion: The minimum (or a range) op-version required by the xlator.</div><div>    - Configurable: A bool to indicate whether this option is user-configurable.</div><div>                          This may also be clubbed with DOC/NO_DOC functionality.</div><div>- Xlators like AFR, changelog require non-static information such as brick path</div><div>  to be present in it&#39;s options in the volfile. Currently, xlator authors have</div><div>  to modify glusterd code to get it.</div><div>  This can rather be indicated by the xlator itself using templates/placehoders.</div><div>  For example, &quot;changelog-dir&quot; can be set in xlator&#39;s option as as</div><div>  &lt;&lt;brick-path&gt;&gt;/.glusterfs/changelogs and then glusterd2 will ensure to replace</div><div>  &lt;&lt;brick-path&gt;&gt; with actual path during volfile generation. </div><div><br></div><div>We&#39;d like to hear your thoughts, suggestions and comments to these proposed</div><div>changes.</div><div><br></div></div><div>- Glusterd2 team</div></div>