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

Niels de Vos ndevos at redhat.com
Mon May 4 07:55:46 UTC 2015


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



More information about the Gluster-devel mailing list