[Gluster-devel] Help needed on placing xlators in the correct server/client/shared/... packages

Kaushal M kshlmster at gmail.com
Mon May 4 08:43:19 UTC 2015


io-threads should be in the client package. It is possible to have
io-threads on the client by enabling performance.client-io-threads
option. This is not a common option, but it someone could use it.

On Mon, May 4, 2015 at 1:25 PM, Niels de Vos <ndevos at redhat.com> wrote:
> Hi all,
>
> [TLDR; jump down to the list of xlators and see if they are in the right
>        package, please reply with corrections]
>
> Many new features introduce new xlators. It is not always straight
> forward to see if an xlator is intended for server-side usage,
> client-side or maybe even both. There are always ongoing request to
> reduce the dependencies and size of client-side packages. In order to
> provide a minimal footprint for Gluster clients, I would like to propose
> the following (RPM) packages that contain xlators:
>
> - glusterfs-server
>   xlators (and other bits) that are only used on the server-side
>
> - glusterfs-fuse
>   mount/fuse.so xlator
>
> - glusterfs-api
>   mount/api.so xlator
>
> - glusterfs-client-xlators
>   xlators that are only used on the client
>
> - glusterfs-extra-xlators
>   optional xlators that require manual modifications of .vol files
>
> - glusterfs
>   shared package that contains xlators used by server and client
>
>
> I've intentionally left out packages that do not contain xlators. Those
> packages have already clearly defined contents and do not need changing
> at the moment.
>
> The dependencies of these packages look roughly like this:
>
>   .------------------.
>   | glusterfs-server |
>   '-------+----------'
>           |\
>           | \
>           |  '---------------+--------------------.
>           |                  |                    |
>           |                  v                    v
>           |         .----------------.     .---------------.
>           |         | glusterfs-fuse |     | glusterfs-api |
>           |         '--------+-------'     '------+--------'
>           |                 /|                   /|
>           |                / |                  / |
>           |               /  |                 /  |
>           |              /   |                /   |
>           | .-----------+----=---------------'    |
>           |/                 |                    |
>           v                  v                    v
>     .-----------.         .--------------------------.
>     | glusterfs |         | glusterfs-client-xlators |
>     '-----------'         '--------------------------'
>
>
> With this structure, users can install glusterfs-server, glusterfs-fuse
> or glusterfs-api (libgfapi) without getting any unneeded xlators or
> other scripts/binaries.
>
> Now, the main difficulty is to put the xlators in their right package.
> We aim for the best experience of users, so the target audience would be
> users that do not manually modify the .vol files. Many xlators can be
> placed on both the client- and server-side, but I want to focus on the
> functionality offered by our tools (gluster-CLI and GlusterD).
>
> Below you will find the layout I have now, based on current packaging
> and some feedback from an earlier email. Anything that is missing in the
> list is not packaged in the RPMs. If there are changes or improvements
> that can/need be done, please respond ASAP. It would be much appreciated
> if we can get this cleaned up for 3.7.0 GA.
>
> Thanks,
> Niels
>
>
> - glusterfs (shared between clients and server)
>   auth/addr.so
>   auth/login.so
>   rpc-transport/socket.so
>   debug/error-gen.so
>   debug/io-stats.so
>   debug/trace.so
>   encryption/crypt.so
>   features/access-control.so
>   features/barrier.so
>   features/cdc.so
>   features/changelog.so
>   features/ganesha.so
>   features/gfid-access.so
>   features/prot_client.so
>   features/prot_dht.so
>   features/prot_server.so
>   features/read-only.so
>   features/shard.so
>   features/snapview-client.so
>   features/worm.so
>   meta.so
>   performance/io-cache.so
>   performance/md-cache.so
>   performance/open-behind.so
>   performance/quick-read.so
>   performance/read-ahead.so
>   performance/readdir-ahead.so
>   performance/stat-prefetch.so
>   performance/write-behind.so
>   system/posix-acl.so
>
> - glusterfs-server
>   cluster/pump.so
>   features/arbiter.so
>   features/bit-rot.so
>   features/bitrot-stub.so
>   features/changetimerecorder.so
>   features/index.so
>   features/locks.so
>   features/posix-locks.so
>   features/quota.so
>   features/quotad.so
>   features/snapview-server.so
>   features/trash.so
>   features/upcall.so
>   mgmt/glusterd.so
>   nfs/server.so
>   performance/io-threads.so
>   protocol/server.so
>   storage/bd.so
>   storage/posix.so
>
> - glusterfs-client-xlators
>   cluster/afr.so
>   cluster/dht.so
>   cluster/disperse.so
>   cluster/distribute.so
>   cluster/ec.so
>   cluster/nufa.so
>   cluster/replicate.so
>   cluster/stripe.so
>   cluster/switch.so
>   cluster/tier.so
>   features/qemu-block.so
>   protocol/client.so
>
> - glusterfs-fuse
>   mount/fuse.so
>
> - glusterfs-api
>   mount/api.so
>
> - glusterfs-extra-xlators
>   features/glupy.so
>   features/quiesce.so
>
> _______________________________________________
> Gluster-devel mailing list
> Gluster-devel at gluster.org
> http://www.gluster.org/mailman/listinfo/gluster-devel


More information about the Gluster-devel mailing list