platform information:<br> CentOS 5.3 (2.6.18-128.1.16.el5)<br> GlusterFS (glusterfs-2.0.3)<br> FUSE (fuse-2.7.4)<br> <br><span style="font-weight: bold; color: rgb(0, 102, 0);">my simple aim is a clustered system providing RAID 1+0 like functionality. now there are two schemes provided by my friend (a novice too). in my opinion, the sheme 2 would work well. but i haven't test them. so anyone here could tell me what sheme is right/wrong/better,and why??!! thanks in advance.</span><br>
<br><span style="color: rgb(255, 0, 0); font-weight: bold;">## scheme 1 ###</span><br> server 1 (192.168.1.11) => brick (only one exported directory)<br> server 2 (192.168.1.11) => brcik<br> server 3 (192.168.1.11) => brick<br>
client (192.168.1.10)<br> <br>and volume filese are as follows:<br> ######################################################<br># volume files on servers are same<br>volume posix<br> type storage/posix<br>
option directory /home/brick<br>end-volume<br><br>volume brick<br>type features/posix-locks<br> subvolumes posix<br>end-volume<br><br>volume server<br> type protocol/server<br> option transport-type tcp/server<br>
option transport.socket.listen-port 6996<br> option transport.socket.bind-address 192.168.1.11<br> subvolumes brick<br> option auth.addr.brick.allow *<br> option auth.addr.posix.allow *<br>
end-volume<br><br><br>#############################<br>## volume file on client<br>#############################<br>volume brick1<br> type protocol/client<br> option transport-type tcp/client<br> option remote-host 192.168.1.11<br>
option remote-port 6996<br> option remote-subvolume brick<br>end-volume<br><br>volume brick2<br> type protocol/client<br> option transport-type tcp/client<br> option remote-host 192.168.1.12<br>
option remote-port 6996<br> option remote-subvolume brick<br>end-volume<br><br>volume brick3<br> type protocol/client<br> option transport-type tcp/client<br> option remote-host 192.168.1.13<br>
option remote-port 6996<br> option remote-subvolume brick<br>end-volume<br><br>## configuration of all 3 replicated bricks<br># afr1 <-- brick1 + brick2<br>volume afr1<br> type cluster/afr<br> subvolumes brick1 brick2<br>
end-volume<br><br># afr2 <-- brick2 + brick3<br>volume afr2<br> type cluster/afr<br> subvolumes brick2 brick3<br>end-volume<br><br># afr3 <-- brick3 + brick1<br>volume afr3<br> type cluster/afr<br>
subvolumes brick3 brick1<br>end-volume<br><br>## stripe on afr1,afr2,afr3<br>volume stripe<br> type cluster/stripe<br> subvolumes afr1 afr2 afr3<br>end-volume<br><br>######### sheme 1 ends ############<br>
<br><span style="font-weight: bold; color: rgb(255, 0, 0);">#################################################</span><br style="font-weight: bold; color: rgb(255, 0, 0);"><span style="font-weight: bold; color: rgb(255, 0, 0);">### scheme 2 </span><br style="font-weight: bold; color: rgb(255, 0, 0);">
<span style="font-weight: bold; color: rgb(255, 0, 0);">#################################################</span><br><br> server 1 (192.168.1.11) => brick1 + brick2 (there are two exported directory on each server)<br>
server 2 (192.168.1.11) => brcik3 + brick4<br> server 3 (192.168.1.11) => brick5 + brick6<br> client (192.168.1.10)<br> <br>### volume files of servers (they are similiar) <br># on server 1<br>
volume posix1<br> type storage/posix<br> option directory /home/brick1<br>end-volume<br><br>volume brick1<br>type features/posix-locks<br> subvolumes posix1<br>end-volume<br><br>volume posix2<br> type storage/posix<br>
option directory /home/brick2<br>end-volume<br><br>volume brick2<br> type features/posix-locks<br> subvolumes posix2<br>end-volume<br><br>volume server<br> type protocol/server<br> option transport-type tcp/server<br>
option transport.socket.listen-port 6996<br> option transport.socket.bind-address 192.168.1.11 <br> subvolumes brick1 brick2<br> option auth.addr.brick1.allow *<br> option auth.addr.posix1.allow *<br>
option auth.addr.brick2.allow *<br> option auth.addr.posix2.allow *<br>end-volume<br><br>## on server 2<br>volume posix1<br> type storage/posix<br> option directory /home/brick3<br>end-volume<br>
<br>volume brick3<br> type features/posix-locks<br> subvolumes posix1<br>end-volume<br><br>volume posix2<br> type storage/posix<br> option directory /home/brick4<br>end-volume<br><br>volume brick4<br>
type features/posix-locks<br> subvolumes posix2<br>end-volume<br><br>volume server<br> type protocol/server<br> option transport-type tcp/server<br> option transport.socket.listen-port 6996<br>
option transport.socket.bind-address 192.168.1.12<br> subvolumes brick3 brick4<br> option auth.addr.brick3.allow *<br> option auth.addr.posix1.allow *<br> option auth.addr.brick4.allow *<br>
option auth.addr.posix2.allow *<br>end-volume<br><br>##on server 3<br>volume posix1<br> type storage/posix<br> option directory /home/brick5<br>end-volume<br><br>volume brick5<br> type features/posix-locks<br>
subvolumes posix1<br>end-volume<br><br>volume posix2<br> type storage/posix<br> option directory /home/brick6<br>end-volume<br><br>volume brick6<br> type features/posix-locks<br> subvolumes posix2<br>
end-volume<br><br>volume server<br> type protocol/server<br> option transport-type tcp/server<br> option transport.socket.bind-address 192.168.1.13<br> option transport.socket.listen-port 6996<br>
subvolumes brick5 brick6<br> option auth.addr.brick5.allow *<br> option auth.addr.posix1.allow *<br> option auth.addr.brick6.allow *<br> option auth.addr.posix2.allow *<br>end-volume<br>
<br>###################<br>## volume file on client<br># brick1 on server 1<br>volume brick1<br> type protocol/client<br> option transport-type tcp/client<br> option remote-host 192.168.1.11<br> option remote-port 6996<br>
option remote-subvolume brick1<br>end-volume<br><br># brick2 on server 1<br>volume brick2<br> type protocol/client<br> option transport-type tcp/client<br> option remote-host 192.168.1.11<br> option remote-port 6996<br>
option remote-subvolume brick2<br>end-volume<br><br># brick3 on server 2<br>volume brick3<br> type protocol/client<br> option transport-type tcp/client<br> option remote-host 192.168.1.12<br> option remote-port 6996<br>
option remote-subvolume brick3<br>end-volume<br><br># brick4 on server 2<br>volume brick4<br> type protocol/client<br> option transport-type tcp/client<br> option remote-host 192.168.1.12<br> option remote-port 6996<br>
option remote-subvolume brick4<br>end-volume<br><br># brick5 on server 3<br>volume brick5<br> type protocol/client<br> option transport-type tcp/client<br> option remote-host 192.168.1.13<br> option remote-port 6996<br>
option remote-subvolume brick5<br>end-volume<br><br># brick6 on server 3<br>volume brick6<br> type protocol/client<br> option transport-type tcp/client<br> option remote-host 192.168.1.13<br> option remote-port 6996<br>
option remote-subvolume brick6<br>end-volume<br><br><br>###############################################<br>## configuration of all 3 replicated bricks<br>###############################################<br><br># a mirror between server 1 (exported dir is afr1-1)<br>
# and server 2 (exported dir is afr2-1)<br># afr1 <-- brick1 + brick3<br>volume afr1<br> type cluster/afr<br> subvolumes brick1 brick3<br>end-volume<br><br># afr2 <-- brick2 + brick5<br>volume afr2<br>
type cluster/afr<br> subvolumes brick2 brick5<br>end-volume<br><br># afr3 <-- brick4 + brick6<br>volume afr3<br> type cluster/afr<br> subvolumes brick4 brick6<br>end-volume<br><br>#####################################<br>
## stripe on afr1,afr2,afr3<br>####################################<br>volume stripe<br> type cluster/stripe<br> subvolumes afr1 afr2 afr3<br>end-volume<br><br>