I’m playing with gluster since a few weeks, here is a short tutorial for optimizations I did for a setup with many small files (1-5mb):
First we checkout the startup time. Gluster by default offers NFS shares, but I don’t need those so we can disable them (note: you can do all of the following commands on any of the gluster nodes, they will communicate the settings to all other nodes):
gluster volume set mirror nfs.disable on
We don’t want that gluster kills our storage because it reaches 100% disk consumption, so we can set a limit:
gluster volume set mirror cluster.min-free-disk 10%
gluster can use the ram as a read-cache. My machines have a huge amount of free ram so I can set a huge caching:
gluster volume set mirror performance.cache-size 25GB gluster volume set mirror performance.cache-max-file-size 128MB
gluster is able to answer with “wuhu I did a flush() successful and all your data is save”. You can configure if it should really do a flush() or do that later in the background. To increase the performance with small files you should chosse the latter one. But keep in mind that this maybe isn’t consistent!
gluster volume set mirror performance.flush-behind on