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

Niels de Vos ndevos at redhat.com
Mon May 4 09:16:50 UTC 2015


On Mon, May 04, 2015 at 02:13:19PM +0530, Kaushal M wrote:
> 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.

In that case, it should probably be in the shared package. For all I
know io-threads are enabled by default on the server-side.

Thanks!
Niels

> 
> 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