<div dir="ltr">Hi Deian,<br><br><div class="gmail_quote">On Fri, Oct 10, 2008 at 8:51 PM, Deian Chepishev <span dir="ltr">&lt;<a href="mailto:dchepishev@nexbrod.com">dchepishev@nexbrod.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hi guys,<br>
<br>
I have a few questions about UNIFY and volume creation.<br>
<br>
You will find my config files at the end of this post. I will post my<br>
questions before the config.<br>
<br>
1. I want to use writebehind and readahead translators, because I think<br>
it speeds the transfer. Can you please take a look i let me know if it<br>
is correctly written.<br>
I basically do this:<br>
create one volume from the exported bricks lets say &quot;unify&quot;<br>
create another volume named &quot;writebehind&quot; with subvolumes unify<br>
then create another volume named &quot;readahead&quot; with subvolumes writebehind<br>
then mount the volume named writebehind.</blockquote><div><br>If you are using&nbsp;  --volume-name option to glusterfs to attach to writebehind, then you are bypassing readahead and hence will not get readahead functionality. If you want to have both read-ahead and write-behind functionalities, do not specify --volume-name option (or give readahead as the argument to the option, if at all you want to use it).<br>
<br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><br>
<br>
Is this correct or there is a better way to do this?<br>
<br>
2. Does the UNIFY volume adds special attributes to the files like AFR ?</blockquote><div><br>No<br>&nbsp;<br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>
<br>
3. Is there a way to specify in /etc/fstab exactly which volume I want<br>
to mount?<br>
In the docs they say:<br>
<br>
<a href="http://192.168.0.1" target="_blank">192.168.0.1</a> /mnt/glusterfs glusterfs defaults 0 0<br>
<br>
OR<br>
<br>
/etc/glusterfs/glusterfs-client.vol /mnt/glusterfs glusterfs defaults 0 0<br>
<br>
However I dont know which volume will be mounted if I have more than one<br>
defined in the config as in my case.<br>
Is there a way to point which one to be mounted.</blockquote><div><br>simple way would be to have the volume which you want to attach to as the last (bottom most) volume in volume-specfication file (you have to delete the unnecessary volumes or disconnect them from the graph by not having them in the subvolumes list of any other volumes).<br>
<br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><br>
<br>
4. I use Gigabit network and noticed that when I use dd to write a file<br>
I get around 115 MB/sec and during this time the glusterfs process<br>
spends around 30-40%<br>
CPU load on machine with Quad Core 2GHz Xeon, which seem quite high load<br>
to me.<br>
<br>
If I mount the GFS system locally on the server glusterfs loads the CPU<br>
to 100%<br>
<br>
Is this high load normal or I am missing something ?<br>
What can I do to lower the load ?<br>
<br>
<br>
<br>
I have the following server and client files:<br>
<br>
<br>
volume brick<br>
&nbsp;type storage/posix<br>
&nbsp;option directory /storage/gluster-export/data/<br>
end-volume<br>
<br>
volume brick-ns<br>
&nbsp;type storage/posix<br>
&nbsp;option directory /storage/gluster-export/ns<br>
end-volume<br>
<br>
### Add network serving capability to above brick.<br>
<br>
volume server<br>
&nbsp;type protocol/server<br>
&nbsp;option transport-type tcp/server<br>
&nbsp;subvolumes brick brick-ns<br>
&nbsp;option auth.ip.brick.allow <a href="http://10.1.124." target="_blank">10.1.124.</a>*<br>
&nbsp;option auth.ip.brick-ns.allow <a href="http://10.1.124." target="_blank">10.1.124.</a>*<br>
end-volume<br>
<br>
=========================<br>
<br>
Client:<br>
<br>
volume brick1-stor01<br>
&nbsp;type protocol/client<br>
&nbsp;option transport-type tcp/client<br>
&nbsp;option remote-host <a href="http://10.1.124.200" target="_blank">10.1.124.200</a><br>
&nbsp;option remote-subvolume brick<br>
end-volume<br>
<br>
volume brick1-stor02<br>
&nbsp;type protocol/client<br>
&nbsp;option transport-type tcp/client<br>
&nbsp;option remote-host <a href="http://10.1.124.201" target="_blank">10.1.124.201</a><br>
&nbsp;option remote-subvolume brick<br>
end-volume<br>
<br>
volume brick-ns1<br>
&nbsp;type protocol/client<br>
&nbsp;option transport-type tcp/client<br>
&nbsp;option remote-host <a href="http://10.1.124.200" target="_blank">10.1.124.200</a><br>
&nbsp;option remote-subvolume brick-ns<br>
end-volume<br>
<br>
<br>
volume brick-ns2<br>
&nbsp;type protocol/client<br>
&nbsp;option transport-type tcp/client<br>
&nbsp;option remote-host <a href="http://10.1.124.201" target="_blank">10.1.124.201</a><br>
&nbsp;option remote-subvolume brick-ns &nbsp;# Note the different remote volume name.<br>
end-volume<br>
<br>
volume afr-ns<br>
&nbsp;type cluster/afr<br>
&nbsp;subvolumes brick-ns1 brick-ns2<br>
end-volume<br>
<br>
volume unify<br>
&nbsp;type cluster/unify<br>
&nbsp;option namespace afr-ns<br>
&nbsp;option scheduler rr<br>
 &nbsp;option scheduler alu &nbsp; # use the ALU scheduler<br>
 &nbsp;option alu.limits.min-free-disk &nbsp;5% &nbsp; &nbsp; &nbsp;# Don&#39;t create files one a<br>
volume with less than 5% free diskspace<br>
 &nbsp;option alu.limits.max-open-files 10000 &nbsp; # Don&#39;t create files on a<br>
volume with more than 10000 files open<br>
 &nbsp;option alu.order<br>
disk-usage:read-usage:write-usage:open-files-usage:disk-speed-usage<br>
 &nbsp;option alu.disk-usage.entry-threshold 100GB &nbsp; # Kick in if the<br>
discrepancy in disk-usage between volumes is more than 2GB<br>
 &nbsp;option alu.disk-usage.exit-threshold &nbsp;50MB &nbsp; # Don&#39;t stop writing to<br>
the least-used volume until the discrepancy is 1988MB<br>
 &nbsp;option alu.open-files-usage.entry-threshold 1024 &nbsp; # Kick in if the<br>
discrepancy in open files is 1024<br>
 &nbsp;option alu.open-files-usage.exit-threshold 32 &nbsp; # Don&#39;t stop until 992<br>
files have been written the least-used volume<br>
 &nbsp;option alu.stat-refresh.interval 10sec &nbsp; # Refresh the statistics used<br>
for decision-making every 10 seconds<br>
&nbsp;subvolumes brick1-stor01 brick1-stor02<br>
end-volume<br>
<br>
volume writebehind<br>
 &nbsp;type performance/write-behind<br>
 &nbsp;option aggregate-size 512kb # default is 0bytes<br>
 &nbsp;option flush-behind on &nbsp; &nbsp;# default is &#39;off&#39;<br>
 &nbsp;subvolumes unify<br>
end-volume<br>
<br>
volume readahead<br>
 &nbsp;type performance/read-ahead<br>
 &nbsp;option page-size 512kB<br>
 &nbsp;option page-count 4<br>
 &nbsp;option force-atime-update off<br>
 &nbsp;subvolumes writebehind<br>
end-volume<br>
<br>
<br>
<br>
Sorry for the long post and thank you in advance.<br>
<br>
<br>
_______________________________________________<br>
Gluster-users mailing list<br>
<a href="mailto:Gluster-users@gluster.org">Gluster-users@gluster.org</a><br>
<a href="http://zresearch.com/cgi-bin/mailman/listinfo/gluster-users" target="_blank">http://zresearch.com/cgi-bin/mailman/listinfo/gluster-users</a><br>
</blockquote></div><br><br clear="all">regards,<br><br>-- <br>Raghavendra G<br><br>
</div>