[Gluster-users] Some Unify questions

Deian Chepishev dchepishev at nexbrod.com
Fri Oct 10 16:51:30 UTC 2008


Hi guys,

I have a few questions about UNIFY and volume creation.

You will find my config files at the end of this post. I will post my 
questions before the config.

1. I want to use writebehind and readahead translators, because I think 
it speeds the transfer. Can you please take a look i let me know if it 
is correctly written.
I basically do this:
create one volume from the exported bricks lets say "unify"
create another volume named "writebehind" with subvolumes unify
then create another volume named "readahead" with subvolumes writebehind
then mount the volume named writebehind.

Is this correct or there is a better way to do this?

2. Does the UNIFY volume adds special attributes to the files like AFR ?

3. Is there a way to specify in /etc/fstab exactly which volume I want 
to mount?
In the docs they say:

192.168.0.1 /mnt/glusterfs glusterfs defaults 0 0

OR

/etc/glusterfs/glusterfs-client.vol /mnt/glusterfs glusterfs defaults 0 0

However I dont know which volume will be mounted if I have more than one 
defined in the config as in my case.
Is there a way to point which one to be mounted.

4. I use Gigabit network and noticed that when I use dd to write a file 
I get around 115 MB/sec and during this time the glusterfs process 
spends around 30-40%
CPU load on machine with Quad Core 2GHz Xeon, which seem quite high load 
to me.

If I mount the GFS system locally on the server glusterfs loads the CPU 
to 100%

Is this high load normal or I am missing something ?
What can I do to lower the load ?



I have the following server and client files:


volume brick
 type storage/posix
 option directory /storage/gluster-export/data/
end-volume

volume brick-ns
 type storage/posix
 option directory /storage/gluster-export/ns
end-volume

### Add network serving capability to above brick.

volume server
 type protocol/server
 option transport-type tcp/server
 subvolumes brick brick-ns
 option auth.ip.brick.allow 10.1.124.*
 option auth.ip.brick-ns.allow 10.1.124.*
end-volume

=========================

Client:

volume brick1-stor01
 type protocol/client
 option transport-type tcp/client
 option remote-host 10.1.124.200
 option remote-subvolume brick  
end-volume

volume brick1-stor02
 type protocol/client
 option transport-type tcp/client
 option remote-host 10.1.124.201
 option remote-subvolume brick
end-volume

volume brick-ns1
 type protocol/client
 option transport-type tcp/client
 option remote-host 10.1.124.200
 option remote-subvolume brick-ns
end-volume


volume brick-ns2
 type protocol/client
 option transport-type tcp/client
 option remote-host 10.1.124.201
 option remote-subvolume brick-ns  # Note the different remote volume name.
end-volume

volume afr-ns
 type cluster/afr
 subvolumes brick-ns1 brick-ns2
end-volume

volume unify
 type cluster/unify
 option namespace afr-ns
 option scheduler rr
  option scheduler alu   # use the ALU scheduler
  option alu.limits.min-free-disk  5%      # Don't create files one a 
volume with less than 5% free diskspace
  option alu.limits.max-open-files 10000   # Don't create files on a 
volume with more than 10000 files open
  option alu.order 
disk-usage:read-usage:write-usage:open-files-usage:disk-speed-usage
  option alu.disk-usage.entry-threshold 100GB   # Kick in if the 
discrepancy in disk-usage between volumes is more than 2GB
  option alu.disk-usage.exit-threshold  50MB   # Don't stop writing to 
the least-used volume until the discrepancy is 1988MB
  option alu.open-files-usage.entry-threshold 1024   # Kick in if the 
discrepancy in open files is 1024
  option alu.open-files-usage.exit-threshold 32   # Don't stop until 992 
files have been written the least-used volume
  option alu.stat-refresh.interval 10sec   # Refresh the statistics used 
for decision-making every 10 seconds
 subvolumes brick1-stor01 brick1-stor02
end-volume

volume writebehind
  type performance/write-behind
  option aggregate-size 512kb # default is 0bytes
  option flush-behind on    # default is 'off'
  subvolumes unify
end-volume

volume readahead
  type performance/read-ahead
  option page-size 512kB       
  option page-count 4          
  option force-atime-update off
  subvolumes writebehind
end-volume



Sorry for the long post and thank you in advance.





More information about the Gluster-users mailing list