pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/filesystems/glusterfs * Bitrot Detection



details:   https://anonhg.NetBSD.org/pkgsrc/rev/bf066034ff4c
branches:  trunk
changeset: 652442:bf066034ff4c
user:      manu <manu%pkgsrc.org@localhost>
date:      Tue Jun 02 03:44:16 2015 +0000

description:
* Bitrot Detection

Bitrot detection is a technique used to identify an ?insidious?
type of disk error where data is silently corrupted with no indication
from the disk to the storage software layer that an error has
occurred. When bitrot detection is enabled on a volume, gluster
performs signing of all files/objects in the volume and scrubs data
periodically for signature verification. All anomalies observed
will be noted in log files.


* Multi threaded epoll for performance improvements

Gluster 3.7 introduces multiple threads to dequeue and process more
requests from epoll queues. This improves performance by processing
more I/O requests. Workloads that involve read/write operations on
a lot of small files can benefit from this enhancement.


* Volume Tiering [Experimental]

Policy based tiering for placement of files. This feature will serve
as a foundational piece for building support for data classification.

Volume Tiering is marked as an experimental feature for this release.
It is expected to be fully supported in a 3.7.x minor release.
Trashcan

This feature will enable administrators to temporarily store deleted
files from Gluster volumes for a specified time period.


* Efficient Object Count and Inode Quota Support

This improvement enables an easy mechanism to retrieve the number
of objects per directory or volume. Count of objects/files within
a directory hierarchy is stored as an extended attribute of a
directory. The extended attribute can be queried to retrieve the
count.

This feature has been utilized to add support for inode quotas.


* Pro-active Self healing for Erasure Coding

Gluster 3.7 adds pro-active self healing support for erasure coded
volumes.


* Exports and Netgroups Authentication for NFS

This feature adds Linux-style exports & netgroups authentication
to the native NFS server. This enables administrators to restrict
access to specific clients & netgroups for volume/sub-directory
NFSv3 exports.


* GlusterFind

GlusterFind is a new tool that provides a mechanism to monitor data
events within a volume. Detection of events like modified files is
made easier without having to traverse the entire volume.


* Rebalance Performance Improvements

Rebalance and remove brick operations in Gluster get a performance
boost by speeding up identification of files needing movement and
a multi-threaded mechanism to move all such files.


* NFSv4 and pNFS support

Gluster 3.7 supports export of volumes through NFSv4, NFSv4.1 and
pNFS. This support is enabled via NFS Ganesha. Infrastructure changes
done in Gluster 3.7 to support this feature include:

  - Addition of upcall infrastructure for cache invalidation.
  - Support for lease locks and delegations.
  - Support for enabling Ganesha through Gluster CLI.
  - Corosync and pacemaker based implementation providing resource
    monitoring and failover to accomplish NFS HA.

pNFS support for Gluster volumes and NFSv4 delegations are in beta
for this release. Infrastructure changes to support Lease locks and
NFSv4 delegations are targeted for a 3.7.x minor release.


* Snapshot Scheduling

With this enhancement, administrators can schedule volume snapshots.


* Snapshot Cloning

Volume snapshots can now be cloned to create a new writeable volume.


* Sharding [Experimental]

Sharding addresses the problem of fragmentation of space within a
volume. This feature adds support for files that are larger than
the size of an individual brick. Sharding works by chunking files
to blobs of a configurabe size.

Sharding is an experimental feature for this release. It is expected
to be fully supported in a 3.7.x minor release.


* RCU in glusterd

Thread synchronization and critical section access has been improved
by introducing userspace RCU in glusterd


* Arbiter Volumes

Arbiter volumes are 3 way replicated volumes where the 3rd brick
of the replica is automatically configured as an arbiter. The 3rd
brick contains only metadata which provides network partition
tolerance and prevents split-brains from happening.

Update to GlusterFS 3.7.1

* Better split-brain resolution

split-brain resolutions can now be also driven by users without
administrative intervention.


* Geo-replication improvements

There have been several improvements in geo-replication for stability
and performance.


* Minor Improvements

  - Message ID based logging has been added for several translators.
  - Quorum support for reads.
  - Snapshot names contain timestamps by default.Subsequent access
    to the snapshots should be done by the name listed in gluster
    snapshot list
  - Support for gluster volume get <volname> added.
  - libgfapi has added handle based functions to get/set POSIX ACLs
    based on common libacl structures.

diffstat:

 filesystems/glusterfs/Makefile                                            |   55 +-
 filesystems/glusterfs/PLIST                                               |  202 ++++++---
 filesystems/glusterfs/distinfo                                            |   12 +-
 filesystems/glusterfs/patches/patch-10963                                 |  110 +++++
 filesystems/glusterfs/patches/patch-rpc_rpc-lib_src_rpcsvc.c              |   17 -
 filesystems/glusterfs/patches/patch-xlator_storage_posix_src_posix.c      |   17 -
 filesystems/glusterfs/patches/patch-xlators_mgmt_glusterd_src_Makefile.in |   15 -
 7 files changed, 278 insertions(+), 150 deletions(-)

diffs (truncated from 558 to 300 lines):

diff -r 9f5e1bdd0993 -r bf066034ff4c filesystems/glusterfs/Makefile
--- a/filesystems/glusterfs/Makefile    Tue Jun 02 03:11:32 2015 +0000
+++ b/filesystems/glusterfs/Makefile    Tue Jun 02 03:44:16 2015 +0000
@@ -1,6 +1,6 @@
-# $NetBSD: Makefile,v 1.50 2015/05/01 12:19:07 joerg Exp $
+# $NetBSD: Makefile,v 1.51 2015/06/02 03:44:16 manu Exp $
 
-DISTNAME=      glusterfs-3.6.2
+DISTNAME=      glusterfs-3.7.1
 PKGREVISION=   1
 CATEGORIES=    filesystems
 MASTER_SITES=  http://bits.gluster.org/pub/gluster/glusterfs/src/
@@ -12,7 +12,7 @@
 
 GNU_CONFIGURE=         yes
 USE_LIBTOOL=           yes
-USE_TOOLS+=            flex bison
+USE_TOOLS+=            flex bison pkg-config bash
 
 CONFIGURE_ARGS+=       --disable-fusermount
 CONFIGURE_ARGS+=       --localstatedir=${VARBASE}
@@ -20,26 +20,41 @@
 # Make sure we do not attept to link with -lfl
 # Only libfl.a is available, and libtool wants libfl.so
 MAKE_FLAGS+=           LEXLIB=""
-MAKE_FLAGS+=           libglusterfs_la_LIBADD=""
 
 PYTHON_VERSIONS_INCOMPATIBLE=  33 34 # only 2.x supported as of 3.6.0
 
-#REPLACE_PYTHON+=      contrib/ipaddr-py/ipaddr.py
-#REPLACE_PYTHON+=      gen-headers.py
-#REPLACE_PYTHON+=      tests/bugs/overlap.py
-#REPLACE_PYTHON+=      tests/utils/create-files.py
+REPLACE_PYTHON+=       contrib/ipaddr-py/ipaddr.py
+REPLACE_PYTHON+=       extras/snap_scheduler/gcron.py
+REPLACE_PYTHON+=       extras/snap_scheduler/snap_scheduler.py
+REPLACE_PYTHON+=       geo-replication/src/peer_mountbroker.in
 REPLACE_PYTHON+=       geo-replication/syncdaemon/changelogagent.py
 REPLACE_PYTHON+=       geo-replication/syncdaemon/gsyncd.py
-REPLACE_PYTHON+=       contrib/ipaddr-py/ipaddr.py
+REPLACE_PYTHON+=       geo-replication/syncdaemon/gsyncdstatus.py
+REPLACE_PYTHON+=       tools/gfind_missing_files/gfid_to_path.py
+REPLACE_PYTHON+=       tools/glusterfind/glusterfind.in
+REPLACE_PYTHON+=       tools/glusterfind/src/__init__.py
+REPLACE_PYTHON+=       tools/glusterfind/src/brickfind.py
+REPLACE_PYTHON+=       tools/glusterfind/src/changelog.py
+REPLACE_PYTHON+=       tools/glusterfind/src/changelogdata.py
+REPLACE_PYTHON+=       tools/glusterfind/src/conf.py
+REPLACE_PYTHON+=       tools/glusterfind/src/libgfchangelog.py
+REPLACE_PYTHON+=       tools/glusterfind/src/main.py
+REPLACE_PYTHON+=       tools/glusterfind/src/nodeagent.py
+REPLACE_PYTHON+=       tools/glusterfind/src/utils.py
 
+REPLACE_BASH+=         extras/ganesha/ocf/ganesha_grace
+REPLACE_BASH+=         extras/ganesha/ocf/ganesha_mon
+REPLACE_BASH+=         extras/ganesha/ocf/ganesha_nfsd
+REPLACE_BASH+=         extras/ganesha/scripts/ganesha-ha.sh
 REPLACE_BASH+=         extras/geo-rep/generate-gfid-file.sh
 REPLACE_BASH+=         extras/geo-rep/get-gfid.sh
+REPLACE_BASH+=         extras/geo-rep/gsync-upgrade.sh
+REPLACE_BASH+=         extras/geo-rep/slave-upgrade.sh
+REPLACE_BASH+=         extras/peer_add_secret_pub.in
+REPLACE_BASH+=         extras/peer_add_secret_pub.in
 REPLACE_BASH+=         extras/post-upgrade-script-for-quota.sh
 REPLACE_BASH+=         extras/pre-upgrade-script-for-quota.sh
-REPLACE_BASH+=         extras/geo-rep/slave-upgrade.sh
-REPLACE_BASH+=         extras/geo-rep/gsync-upgrade.sh
 REPLACE_BASH+=         geo-replication/src/gverify.sh
-REPLACE_BASH+=         geo-replication/src/peer_add_secret_pub.in
 REPLACE_BASH+=         geo-replication/src/peer_gsec_create.in
 REPLACE_BASH+=         geo-replication/src/set_geo_rep_pem_keys.sh
 
@@ -78,20 +93,13 @@
 
 pre-build:
        cd ${WRKSRC}/extras &&                                  \
-       echo "glusterd.vol.sample: glusterd.vol" >> Makefile && \
-       echo "  cp glusterd.vol glusterd.vol.sample" >> Makefile
+       ${ECHO} "glusterd.vol.sample: glusterd.vol" >> Makefile &&      \
+       ${ECHO} "       cp glusterd.vol glusterd.vol.sample" >> Makefile
 
 post-install:
        ${INSTALL_SCRIPT} ${DESTDIR}/sbin/mount_glusterfs \
            ${DESTDIR}/${PREFIX}/sbin/mount_glusterfs
 
-.include "../../mk/bsd.prefs.mk"
-
-.if ${MACHINE_ARCH} == "x86_64"
-PLIST_VARS+=ec
-PLIST.ec=yes
-.endif
-
 # Debug
 CFLAGS+=               -g
 INSTALL_UNSTRIPPED=    yes
@@ -101,9 +109,12 @@
 #CFLAGS+=-include gc.h
 #LIBS+=-lgc
 
-#.include "../../devel/argp/buildlink3.mk"
+.include "../../mk/bsd.prefs.mk"
+
 .include "../../security/openssl/buildlink3.mk"
 .include "../../textproc/libxml2/buildlink3.mk"
+.include "../../databases/sqlite3/buildlink3.mk"
+.include "../../devel/userspace-rcu/buildlink3.mk"
 .include "../../lang/python/application.mk"
 .include "../../lang/python/extension.mk"
 
diff -r 9f5e1bdd0993 -r bf066034ff4c filesystems/glusterfs/PLIST
--- a/filesystems/glusterfs/PLIST       Tue Jun 02 03:11:32 2015 +0000
+++ b/filesystems/glusterfs/PLIST       Tue Jun 02 03:44:16 2015 +0000
@@ -1,10 +1,12 @@
-@comment $NetBSD: PLIST,v 1.23 2015/05/01 12:19:07 joerg Exp $
+@comment $NetBSD: PLIST,v 1.24 2015/06/02 03:44:16 manu Exp $
 ${PYSITELIB}/gluster/__init__.py
 ${PYSITELIB}/gluster/__init__.pyc
 ${PYSITELIB}/gluster/__init__.pyo
-${PYSITELIB}/gluster/glupy.py
-${PYSITELIB}/gluster/glupy.pyc
-${PYSITELIB}/gluster/glupy.pyo
+${PYSITELIB}/gluster/glupy/__init__.py
+${PYSITELIB}/gluster/glupy/__init__.pyc
+${PYSITELIB}/gluster/glupy/__init__.pyo
+bin/glusterfind
+etc/ganesha/ganesha-ha.conf.sample
 etc/glusterfs/gluster-rsyslog-5.8.conf
 etc/glusterfs/gluster-rsyslog-7.2.conf
 etc/glusterfs/glusterd.vol.sample
@@ -15,87 +17,136 @@
 include/glusterfs/api/glfs-handles.h
 include/glusterfs/api/glfs.h
 include/glusterfs/gfchangelog/changelog.h
-lib/glusterfs/3.6.2/auth/addr.la
-lib/glusterfs/3.6.2/auth/login.la
-lib/glusterfs/3.6.2/rpc-transport/socket.la
-lib/glusterfs/3.6.2/xlator/cluster/afr.la
-lib/glusterfs/3.6.2/xlator/cluster/dht.la
-lib/glusterfs/3.6.2/xlator/cluster/distribute.so
-${PLIST.ec}lib/glusterfs/3.6.2/xlator/cluster/disperse.so
-${PLIST.ec}lib/glusterfs/3.6.2/xlator/cluster/ec.la
-lib/glusterfs/3.6.2/xlator/cluster/nufa.la
-lib/glusterfs/3.6.2/xlator/cluster/pump.la
-lib/glusterfs/3.6.2/xlator/cluster/replicate.so
-lib/glusterfs/3.6.2/xlator/cluster/stripe.la
-lib/glusterfs/3.6.2/xlator/cluster/switch.la
-lib/glusterfs/3.6.2/xlator/debug/error-gen.la
-lib/glusterfs/3.6.2/xlator/debug/io-stats.la
-lib/glusterfs/3.6.2/xlator/debug/trace.la
-lib/glusterfs/3.6.2/xlator/encryption/crypt.la
-lib/glusterfs/3.6.2/xlator/encryption/rot-13.la
-lib/glusterfs/3.6.2/xlator/features/access-control.so
-lib/glusterfs/3.6.2/xlator/features/barrier.la
-lib/glusterfs/3.6.2/xlator/features/cdc.la
-lib/glusterfs/3.6.2/xlator/features/changelog.la
-lib/glusterfs/3.6.2/xlator/features/gfid-access.la
-lib/glusterfs/3.6.2/xlator/features/glupy.la
-lib/glusterfs/3.6.2/xlator/features/glupy/debug-trace.py
-lib/glusterfs/3.6.2/xlator/features/glupy/debug-trace.pyc
-lib/glusterfs/3.6.2/xlator/features/glupy/debug-trace.pyo
-lib/glusterfs/3.6.2/xlator/features/glupy/helloworld.py
-lib/glusterfs/3.6.2/xlator/features/glupy/helloworld.pyc
-lib/glusterfs/3.6.2/xlator/features/glupy/helloworld.pyo
-lib/glusterfs/3.6.2/xlator/features/glupy/negative.py
-lib/glusterfs/3.6.2/xlator/features/glupy/negative.pyc
-lib/glusterfs/3.6.2/xlator/features/glupy/negative.pyo
-lib/glusterfs/3.6.2/xlator/features/index.la
-lib/glusterfs/3.6.2/xlator/features/locks.la
-lib/glusterfs/3.6.2/xlator/features/mac-compat.la
-lib/glusterfs/3.6.2/xlator/features/marker.la
-lib/glusterfs/3.6.2/xlator/features/posix-locks.so
-lib/glusterfs/3.6.2/xlator/features/prot_client.la
-lib/glusterfs/3.6.2/xlator/features/prot_dht.la
-lib/glusterfs/3.6.2/xlator/features/prot_server.la
-lib/glusterfs/3.6.2/xlator/features/quiesce.la
-lib/glusterfs/3.6.2/xlator/features/quota.la
-lib/glusterfs/3.6.2/xlator/features/quotad.la
-lib/glusterfs/3.6.2/xlator/features/read-only.la
-lib/glusterfs/3.6.2/xlator/features/snapview-client.la
-lib/glusterfs/3.6.2/xlator/features/snapview-server.la
-lib/glusterfs/3.6.2/xlator/features/worm.la
-lib/glusterfs/3.6.2/xlator/meta.la
-lib/glusterfs/3.6.2/xlator/mgmt/glusterd.la
-lib/glusterfs/3.6.2/xlator/mount/api.la
-lib/glusterfs/3.6.2/xlator/mount/fuse.la
-lib/glusterfs/3.6.2/xlator/nfs/server.la
-lib/glusterfs/3.6.2/xlator/performance/io-cache.la
-lib/glusterfs/3.6.2/xlator/performance/io-threads.la
-lib/glusterfs/3.6.2/xlator/performance/md-cache.la
-lib/glusterfs/3.6.2/xlator/performance/open-behind.la
-lib/glusterfs/3.6.2/xlator/performance/quick-read.la
-lib/glusterfs/3.6.2/xlator/performance/read-ahead.la
-lib/glusterfs/3.6.2/xlator/performance/readdir-ahead.la
-lib/glusterfs/3.6.2/xlator/performance/stat-prefetch.so
-lib/glusterfs/3.6.2/xlator/performance/write-behind.la
-lib/glusterfs/3.6.2/xlator/protocol/client.la
-lib/glusterfs/3.6.2/xlator/protocol/server.la
-lib/glusterfs/3.6.2/xlator/storage/posix.la
-lib/glusterfs/3.6.2/xlator/system/posix-acl.la
-lib/glusterfs/3.6.2/xlator/testing/features/template.la
-lib/glusterfs/3.6.2/xlator/testing/performance/symlink-cache.la
+include/glusterfs/gfdb/gfdb_data_store.h
+include/glusterfs/gfdb/gfdb_data_store_types.h
+include/glusterfs/gfdb/gfdb_mem-types.h
+include/glusterfs/gfdb/gfdb_sqlite3.h
+include/glusterfs/gfdb/gfdb_sqlite3_helper.c
+lib/glusterfs/3.7.1/auth/addr.la
+lib/glusterfs/3.7.1/auth/login.la
+lib/glusterfs/3.7.1/rpc-transport/socket.la
+lib/glusterfs/3.7.1/xlator/cluster/afr.la
+lib/glusterfs/3.7.1/xlator/cluster/dht.la
+lib/glusterfs/3.7.1/xlator/cluster/disperse.so
+lib/glusterfs/3.7.1/xlator/cluster/distribute.so
+lib/glusterfs/3.7.1/xlator/cluster/ec.la
+lib/glusterfs/3.7.1/xlator/cluster/nufa.la
+lib/glusterfs/3.7.1/xlator/cluster/pump.la
+lib/glusterfs/3.7.1/xlator/cluster/replicate.so
+lib/glusterfs/3.7.1/xlator/cluster/stripe.la
+lib/glusterfs/3.7.1/xlator/cluster/switch.la
+lib/glusterfs/3.7.1/xlator/cluster/tier.la
+lib/glusterfs/3.7.1/xlator/debug/error-gen.la
+lib/glusterfs/3.7.1/xlator/debug/io-stats.la
+lib/glusterfs/3.7.1/xlator/debug/trace.la
+lib/glusterfs/3.7.1/xlator/encryption/crypt.la
+lib/glusterfs/3.7.1/xlator/encryption/rot-13.la
+lib/glusterfs/3.7.1/xlator/features/access-control.so
+lib/glusterfs/3.7.1/xlator/features/arbiter.la
+lib/glusterfs/3.7.1/xlator/features/barrier.la
+lib/glusterfs/3.7.1/xlator/features/bit-rot.la
+lib/glusterfs/3.7.1/xlator/features/bitrot-stub.la
+lib/glusterfs/3.7.1/xlator/features/cdc.la
+lib/glusterfs/3.7.1/xlator/features/changelog.la
+lib/glusterfs/3.7.1/xlator/features/changetimerecorder.la
+lib/glusterfs/3.7.1/xlator/features/ganesha.la
+lib/glusterfs/3.7.1/xlator/features/gfid-access.la
+lib/glusterfs/3.7.1/xlator/features/glupy.la
+lib/glusterfs/3.7.1/xlator/features/glupy/debug-trace.py
+lib/glusterfs/3.7.1/xlator/features/glupy/debug-trace.pyc
+lib/glusterfs/3.7.1/xlator/features/glupy/debug-trace.pyo
+lib/glusterfs/3.7.1/xlator/features/glupy/helloworld.py
+lib/glusterfs/3.7.1/xlator/features/glupy/helloworld.pyc
+lib/glusterfs/3.7.1/xlator/features/glupy/helloworld.pyo
+lib/glusterfs/3.7.1/xlator/features/glupy/negative.py
+lib/glusterfs/3.7.1/xlator/features/glupy/negative.pyc
+lib/glusterfs/3.7.1/xlator/features/glupy/negative.pyo
+lib/glusterfs/3.7.1/xlator/features/index.la
+lib/glusterfs/3.7.1/xlator/features/locks.la
+lib/glusterfs/3.7.1/xlator/features/mac-compat.la
+lib/glusterfs/3.7.1/xlator/features/marker.la
+lib/glusterfs/3.7.1/xlator/features/posix-locks.so
+lib/glusterfs/3.7.1/xlator/features/prot_client.la
+lib/glusterfs/3.7.1/xlator/features/prot_dht.la
+lib/glusterfs/3.7.1/xlator/features/prot_server.la
+lib/glusterfs/3.7.1/xlator/features/quiesce.la
+lib/glusterfs/3.7.1/xlator/features/quota.la
+lib/glusterfs/3.7.1/xlator/features/quotad.la
+lib/glusterfs/3.7.1/xlator/features/read-only.la
+lib/glusterfs/3.7.1/xlator/features/shard.la
+lib/glusterfs/3.7.1/xlator/features/snapview-client.la
+lib/glusterfs/3.7.1/xlator/features/snapview-server.la
+lib/glusterfs/3.7.1/xlator/features/trash.la
+lib/glusterfs/3.7.1/xlator/features/upcall.la
+lib/glusterfs/3.7.1/xlator/features/worm.la
+lib/glusterfs/3.7.1/xlator/meta.la
+lib/glusterfs/3.7.1/xlator/mgmt/glusterd.la
+lib/glusterfs/3.7.1/xlator/mount/api.la
+lib/glusterfs/3.7.1/xlator/mount/fuse.la
+lib/glusterfs/3.7.1/xlator/nfs/server.la
+lib/glusterfs/3.7.1/xlator/performance/io-cache.la
+lib/glusterfs/3.7.1/xlator/performance/io-threads.la
+lib/glusterfs/3.7.1/xlator/performance/md-cache.la
+lib/glusterfs/3.7.1/xlator/performance/open-behind.la
+lib/glusterfs/3.7.1/xlator/performance/quick-read.la
+lib/glusterfs/3.7.1/xlator/performance/read-ahead.la
+lib/glusterfs/3.7.1/xlator/performance/readdir-ahead.la
+lib/glusterfs/3.7.1/xlator/performance/stat-prefetch.so
+lib/glusterfs/3.7.1/xlator/performance/write-behind.la
+lib/glusterfs/3.7.1/xlator/protocol/client.la
+lib/glusterfs/3.7.1/xlator/protocol/server.la
+lib/glusterfs/3.7.1/xlator/storage/posix.la
+lib/glusterfs/3.7.1/xlator/system/posix-acl.la
+lib/glusterfs/3.7.1/xlator/testing/features/template.la
+lib/glusterfs/3.7.1/xlator/testing/performance/symlink-cache.la
 lib/libgfapi.la
 lib/libgfchangelog.la
+lib/libgfdb.la
 lib/libgfrpc.la
 lib/libgfxdr.la
 lib/libglusterfs.la
 lib/ocf/resource.d/glusterfs/glusterd
 lib/ocf/resource.d/glusterfs/volume
+lib/ocf/resource.d/heartbeat/ganesha_grace
+lib/ocf/resource.d/heartbeat/ganesha_mon
+lib/ocf/resource.d/heartbeat/ganesha_nfsd
 lib/pkgconfig/glusterfs-api.pc
 lib/pkgconfig/libgfchangelog.pc
+lib/pkgconfig/libgfdb.pc
+libexec/ganesha/create-export-ganesha.sh
+libexec/ganesha/dbus-send.sh
+libexec/ganesha/ganesha-ha.sh



Home | Main Index | Thread Index | Old Index