Whats New v2.0
From GlusterDocumentation
This information is out of date
and does not contain information related to the current version of Gluster
Documentation Home
Highlights
Distribute (DHT) translator
There was always a question, why a bottleneck of 'namespace' (while using unify). Yes, glusterfs didn't keep any information in namespace, but still, it was a sort of bottleneck when you use glusterfs for keeping the small files. DHT (or hash) we say, is born to eliminate that delay. It works truly distributed way. No options required, just mention subvolumes, and your load is balanced :-)
Replicate atomic write support
Replicate correctness (includes cases of splitbrain, proper self-heal fixes etc) Replicate is one of GlusterFS's key features. It was questioned for its ability to function well in some split brain situations. There were some corner cases in AFR which needed to be re-worked. With 2.0.x releases, AFR has proper detection of split-brain situations and works smoothly in all cases.
NOTE: AFR requires 'posix-locks' loaded on server side to work properly now)
High Availability (HA) translator
I have my server connected to clients using both gig/e and IB, why shouldn't i use both the transport to work, together? It used to work, but not in a failover way. Now with 'ha' translator, you can make sure, when everything is fine, glusterfs will utilize both the interface to provide you maximum bandwidth (like channel bonding), and when one interface fails, it will be seemlessly switching over to other interface without even bothering users.
Non-blocking I/O
2.x releases supports non-blocking socket connection between client and server, which gives improved performance for small files, and also provides more responsiveness to the filesystem.
Binary Protocol
Earlier Versions of GlusterFS was using ASCII based protocol, which was not so good for the filesystem performance. Now, with 2.x versions, the protocol to interact between clients and servers have changed to binary structure, which has improved the performance by a large extent, also reduced the CPU load on client/server machines.
Features and Enhancements
NUFA translator
With new releases, there is a new NUFA translator itself which shares a lot in common with DHT translator, but has affinity to local node for file creations.
APIs via 'libglusterfsclient' library
If one want to write an application by-passing FUSE layer, which talks directly to GlusterFS process, then the right library is here. Have a look at libglusterfsclient, which comes with 2.0.x releases for the first time.
Apache/Lighttpd embeddable 'mod_glusterfs'
Now, using the above mentioned libglusterfsclient, there is a web embeddable mod_glusterfs, which provides a high speed access to filesystem by passing FUSE layer and avoiding filesystem context switches.
Booster
Booster is not a translator any more. Hence using it is as simple as LD_PRELOADing glusterfs-booster shared object.
Multiple OS support
- OS X - Server and Client works.
- Solaris 10 and above - Server part works file, Client part will be ported in future when FUSE is provided by Solaris.
- FreeBSD 7.0 and above - Server and Client works.
Log message improvements
We have improved the way we present our error msg to user when there are errors in volume file. Now, you can get the exact point of error in volume file by looking at the log.
Stripe over tmpfs
Stripe doesn't need a strict check of extended attributes, so it can be used over 'tmpfs' which helps to make a very fast pool of RAM storage.
Filter translator
It can now be used to protection too. NFS's 'root-squashing' like feature is given by 'filter' translator. it can be used to map user ids to different user id in backend. allow access to only few user-ids, and not to all, etc,etc.
Quota translator
Implements a basic quota type feature. (based on disk-usage or free-disk space), and not yet very sophisticated. User quotas, directory level quotas are in roadmap.
Known Issues
Some known issues and pending activities stalled for upcoming releases.
- Distribute translator: uses 64bit inode numbers, as FreeBSD doesn't support 64bit inodes. Distribute is seen to not work on FreeBSD
- BDB translator: Its not yet bugfree for 2.0.0, but planned for 2.0.1 release (planned by late Jan, 2009).
- Replicate heal of large files may take time when accessed first time (even if a 'stat' happens)
- If distribute is used as subvolumes of unify, unify self heal wont work, also it can't be used as namespace too.
- Distribute over distribute doesn't work
- replicate over replicate doesn't work
- Namespace locking of nufa doesn't work
- Any translator which requires 'extended attribute' support over backend can't use BDB translator.
- Replicate self-heal doesn't supports hard links
- Replicate will only self-heal if the files exist on the first subvolume. Server A-> B works, Server A <-B does not work.
- fuse mount on BSD and Solaris doesn't work (rather, not tested)
- If one loads 'replicate' over 'distribute' it may not work.
- Directory listing of distribute has a corner case issue of showing 'duplicate' entries when few subvolumes are down.
- 'Device or Resource busy' error while doing mkdir() or create() : This is a known fuse issue. it can be solved by an work around by doing 'bash# echo 3 > /proc/sys/vm/drop_caches'
This information is out of date
and does not contain information related to the current version of Gluster
Documentation Home


