<div dir="ltr">By volumes, I meant translators. <br><br>Glusterfs builds a graph which is rooted at the bottom most translator in the volume-specification file. This behaviour can be changed through the --volume-name option. With --volume-name option, the graph will be rooted at the translator provided as the argument to the option. This is helpful for debugging.<br>
<br>As far as your volume specification file is concerned, its correct and you can obtain both functionalities of read-ahead and write-behind by simply starting glusterfs without the --volume-name option, since the graph will be already rooted at the read-ahead translator.<br>
<br>regards,<br><div class="gmail_quote">On Mon, Oct 13, 2008 at 12:43 PM, Deian Chepishev <span dir="ltr"><<a href="mailto:dchepishev@nexbrod.com">dchepishev@nexbrod.com</a>></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;">
Hello Raghavendra,<br>
<div class="Ih2E3d"><br>
Raghavendra G wrote:<br>
> Hi Deian,<br>
><br>
> On Fri, Oct 10, 2008 at 8:51 PM, Deian Chepishev<br>
</div><div class="Ih2E3d">> <<a href="mailto:dchepishev@nexbrod.com">dchepishev@nexbrod.com</a> <mailto:<a href="mailto:dchepishev@nexbrod.com">dchepishev@nexbrod.com</a>>> wrote:<br>
><br>
> 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<br>
> 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 "unify"<br>
> create another volume named "writebehind" with subvolumes unify<br>
> then create another volume named "readahead" with subvolumes<br>
> writebehind<br>
> then mount the volume named writebehind.<br>
><br>
><br>
> If you are using --volume-name option to glusterfs to attach to<br>
> writebehind, then you are bypassing readahead and hence will not get<br>
> readahead functionality. If you want to have both read-ahead and<br>
> write-behind functionalities, do not specify --volume-name option (or<br>
> give readahead as the argument to the option, if at all you want to<br>
> use it).<br>
<br>
</div>===> I am even more confused by your answer :).<br>
I want to have single volume for which I want load both translators<br>
readahead and writebehind. That is why I thought that this is<br>
accomplished with the above mentioned definition scheme. Looks like I am<br>
wrong.<br>
<br>
What is the correct way to define the volume in order to have both<br>
translators loaded for it ?<br>
<div class="Ih2E3d"><br>
><br>
><br>
> I have the following server and client files:<br>
><br>
><br>
> volume brick<br>
> type storage/posix<br>
> option directory /storage/gluster-export/data/<br>
> end-volume<br>
><br>
> volume brick-ns<br>
> type storage/posix<br>
> option directory /storage/gluster-export/ns<br>
> end-volume<br>
><br>
> ### Add network serving capability to above brick.<br>
><br>
> volume server<br>
> type protocol/server<br>
> option transport-type tcp/server<br>
> subvolumes brick brick-ns<br>
</div>> option auth.ip.brick.allow <a href="http://10.1.124." target="_blank">10.1.124.</a> <<a href="http://10.1.124" target="_blank">http://10.1.124</a>.>*<br>
> option auth.ip.brick-ns.allow <a href="http://10.1.124." target="_blank">10.1.124.</a> <<a href="http://10.1.124" target="_blank">http://10.1.124</a>.>*<br>
<div class="Ih2E3d">> end-volume<br>
><br>
> =========================<br>
><br>
> Client:<br>
><br>
> volume brick1-stor01<br>
> type protocol/client<br>
> option transport-type tcp/client<br>
</div>> option remote-host <a href="http://10.1.124.200" target="_blank">10.1.124.200</a> <<a href="http://10.1.124.200" target="_blank">http://10.1.124.200</a>><br>
<div class="Ih2E3d">> option remote-subvolume brick<br>
> end-volume<br>
><br>
> volume brick1-stor02<br>
> type protocol/client<br>
> option transport-type tcp/client<br>
</div>> option remote-host <a href="http://10.1.124.201" target="_blank">10.1.124.201</a> <<a href="http://10.1.124.201" target="_blank">http://10.1.124.201</a>><br>
<div class="Ih2E3d">> option remote-subvolume brick<br>
> end-volume<br>
><br>
> volume brick-ns1<br>
> type protocol/client<br>
> option transport-type tcp/client<br>
</div>> option remote-host <a href="http://10.1.124.200" target="_blank">10.1.124.200</a> <<a href="http://10.1.124.200" target="_blank">http://10.1.124.200</a>><br>
<div class="Ih2E3d">> option remote-subvolume brick-ns<br>
> end-volume<br>
><br>
><br>
> volume brick-ns2<br>
> type protocol/client<br>
> option transport-type tcp/client<br>
</div>> option remote-host <a href="http://10.1.124.201" target="_blank">10.1.124.201</a> <<a href="http://10.1.124.201" target="_blank">http://10.1.124.201</a>><br>
<div><div></div><div class="Wj3C7c">> option remote-subvolume brick-ns # Note the different remote<br>
> volume name.<br>
> end-volume<br>
><br>
> volume afr-ns<br>
> type cluster/afr<br>
> subvolumes brick-ns1 brick-ns2<br>
> end-volume<br>
><br>
> volume unify<br>
> type cluster/unify<br>
> option namespace afr-ns<br>
> option scheduler rr<br>
> option scheduler alu # use the ALU scheduler<br>
> option alu.limits.min-free-disk 5% # Don't create files one a<br>
> volume with less than 5% free diskspace<br>
> option alu.limits.max-open-files 10000 # Don't create files on a<br>
> volume with more than 10000 files open<br>
> option alu.order<br>
> disk-usage:read-usage:write-usage:open-files-usage:disk-speed-usage<br>
> option alu.disk-usage.entry-threshold 100GB # Kick in if the<br>
> discrepancy in disk-usage between volumes is more than 2GB<br>
> option alu.disk-usage.exit-threshold 50MB # Don't stop writing to<br>
> the least-used volume until the discrepancy is 1988MB<br>
> option alu.open-files-usage.entry-threshold 1024 # Kick in if the<br>
> discrepancy in open files is 1024<br>
> option alu.open-files-usage.exit-threshold 32 # Don't stop<br>
> until 992<br>
> files have been written the least-used volume<br>
> option alu.stat-refresh.interval 10sec # Refresh the statistics<br>
> used<br>
> for decision-making every 10 seconds<br>
> subvolumes brick1-stor01 brick1-stor02<br>
> end-volume<br>
><br>
> volume writebehind<br>
> type performance/write-behind<br>
> option aggregate-size 512kb # default is 0bytes<br>
> option flush-behind on # default is 'off'<br>
> subvolumes unify<br>
> end-volume<br>
><br>
> volume readahead<br>
> type performance/read-ahead<br>
> option page-size 512kB<br>
> option page-count 4<br>
> option force-atime-update off<br>
> subvolumes writebehind<br>
> end-volume<br>
><br>
<br>
<br>
</div></div>Thank you.<br>
<br>
Regards,<br>
<font color="#888888">Deian<br>
</font><div><div></div><div class="Wj3C7c"><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>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>Raghavendra G<br><br>
</div>