[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