Thanks Paul, On 9/8/07, Paul Jochum <jochum@xxxxxxxxxxxxxxxxxx> wrote: > > Hi Amar: > > Just 2 small suggestion: > > - for the compile lines (on both client and server), since many users > (especially testing this for the first time) might not have IB, adding > --disable-ibverbs is needed > This was present already in the document. - and recommending turning off (or modifying) iptables is needed to > communicate over TCP/IP. > Added. regards, > > Paul Jochum > Thanks, Amar Amar S. Tumballi wrote: > > Hi all, > After seeing lot of basic questions about setting up basic glusterfs mount, > I thought there is a need for solid guide which gives idea about writing a > basic spec file. Outcome is the current document. Please feel free to review > it. Do suggest some improvements. > > http://gluster.org/docs/index.php/Install_and_run_GlusterFS_in_10mins > > Thanks and Regards, > Amar > > ------------------------------ > > > Download: > ---------- > > Get GlusterFS: http://ftp.zresearch.com/pub/gluster/glusterfs/CURRENT > > Get Patched Fuse: http://ftp.zresearch.com/pub/gluster/glusterfs/fuse/ > - This patched version of fuse is very suited for using with GlusterFS, as: > * this supports higher IO buffer size, which gives increased IO performance. > * it provides flock() syscall, which is not present in regular fuse tarball. > * inode management improvements. > > Install: > ---------- > > This document describes the install procedure from source tarball. > > In the client machine, install the fuse package. (Make sure that '--prefix' option is set to earlier fuse installation path). > > ==== > # tar -xzf fuse-2.7.0-glfs3.tar.gz > # cd fuse-2.7.0-glfs3 > # ./configure --prefix=/usr --enable-kernel-module > # make install > /dev/null > # ldconfig > ==== > > Now make sure that the system has following packages: > * fuse [Just got installed] > * flex > * bison > > Now, untar and install the glusterfs package. > > ==== > # tar -xzf glusterfs-1.3.1.tar.gz > # cd glusterfs-1.3.1/ > # ./configure --prefix= --disable-ibverbs > # make install > /dev/null > ==== > > Congratulations :) You are done with 'glusterfs' installation. > > > Execution: > ---------- > After the installations a majority of problem faced by many people is that, how to get glusterfs working??. To run GlusterFS, you need a volume specification file in short a spec file, which defines the behavior and features for glusterfs. We will start with a barebone spec file (this spec file is very basic and it is just to get the feel of GlusterFS). > > > ** GlusterFS is Distributed Parallel Filesystem (confused?? think it like an N > FS replacement for the time being): > > **** Example1 [NFS like] > Assume you have two machines '192.168.0.1' and '192.168.0.2'. Let 192.168.0.1 be server and the latter be client. [NOTE: you can change the IP address in the spec file according to your network configuration or else to test, you can use the systems localhost IP address i.e '127.0.0.1'] > > -> Server machine: [192.168.0.1] > [NOTE: After editing the file it sould have content as shown by cat command] > > ==== > $ emacs /etc/glusterfs/glusterfs-server.vol > $ cat /etc/glusterfs/glusterfs-server.vol > volume brick > type storage/posix > option directory /tmp/export > end-volume > > volume server > type protocol/server > subvolumes brick > option auth.ip.brick.allow * > end-volume > > $ glusterfsd -f /etc/glusterfs/glusterfs-server.vol > ==== > > -> Client machine: [192.168.0.2] > > ==== > $ mkdir /mnt/glusterfs > $ emacs /etc/glusterfs/glusterfs-client.vol > $ cat /etc/glusterfs/glusterfs-client.vol > > volume client > type protocol/client > option remote-host 192.168.0.1 > option remote-subvolume brick > end-volume > > $ glusterfs -f /etc/glusterfs/glusterfs-client.vol /mnt/glusterfs > ==== > > Wow, you can see the exported directory '192.168.0.1:/tmp/export' as /mnt/glusterfs in client node :O > > > **** Example 2 [Clustered FileSystem] > > Assume you have 4 machines '192.168.0.1' to '192.168.0.4'. Let 3 machines 192.168.0.1, 192.168.0.2 and 192.168.0.3 be servers and other be client. [NOTE: you can change the IP address in the spec file according to your network, or else, to test on the same machine give '127.0.0.1' and different listen ports] > > --> Server1 [192.168.0.1] > > ==== > $ emacs /etc/glusterfs/glusterfs-server.vol > $ cat /etc/glusterfs/glusterfs-server.vol > volume brick > type storage/posix > option directory /tmp/export > end-volume > > volume brick-ns > type storage/posix > option directory /tmp/export-ns > end-volume > > volume server > type protocol/server > subvolumes brick > option auth.ip.brick.allow * > option auth.ip.brick-ns.allow * > end-volume > > $ glusterfsd -f /etc/glusterfs/glusterfs-server.vol > $ df -h > Filesystem Size Used Avail Use% Mounted on > /dev/sda1 9.2G 7.6G 1.2G 87% / > $ > > ==== > > --> Server2 [192.168.0.2] > > ==== > $ emacs /etc/glusterfs/glusterfs-server.vol > $ cat /etc/glusterfs/glusterfs-server.vol > volume brick > type storage/posix > option directory /tmp/export > end-volume > > volume server > type protocol/server > subvolumes brick > option auth.ip.brick.allow * > end-volume > > $ glusterfsd -f /etc/glusterfs/glusterfs-server.vol > $ df -h > Filesystem Size Used Avail Use% Mounted on > /dev/sda1 9.2G 7.6G 1.2G 87% / > $ > ==== > > --> Server3 [192.168.0.3] > > ==== > $ emacs /etc/glusterfs/glusterfs-server.vol > $ cat /etc/glusterfs/glusterfs-server.vol > volume brick > type storage/posix > option directory /tmp/export > end-volume > > volume server > type protocol/server > subvolumes brick > option auth.ip.brick.allow * > end-volume > > $ glusterfsd -f /etc/glusterfs/glusterfs-server.vol > $ df -h > Filesystem Size Used Avail Use% Mounted on > /dev/sda1 9.2G 7.6G 1.2G 87% / > $ > ==== > > --> Client1 [192.168.0.4] > > > ==== > $ mkdir /mnt/glusterfs > $ emacs /etc/glusterfs/glusterfs-client.vol > $ cat /etc/glusterfs/glusterfs-client.vol > > > volume client1-ns > type protocol/client > option remote-host 192.168.0.1 > option remote-subvolume brick-ns > end-volume > > volume client1 > type protocol/client > option remote-host 192.168.0.1 > option remote-subvolume brick > end-volume > > volume client2 > type protocol/client > option remote-host 192.168.0.2 > option remote-subvolume brick > end-volume > > volume client3 > type protocol/client > option remote-host 192.168.0.3 > option remote-subvolume brick > end-volume > > volume unify > type cluster/unify > subvolumes client1 client2 client3 > option namespace client1-ns > option scheduler rr > end-volume > > $ glusterfs -f /etc/glusterfs/glusterfs-client.vol /mnt/glusterfs > $ df -h > Filesystem Size Used Avail Use% Mounted on > /dev/sda1 9.2G 7.6G 1.2G 87% / > glusterfs 27.7G 22.9G 3.7G 87% /mnt/glusterfs > $ > ==== > > :O You already got your cluster file system working > > > For more details refer Gluster wiki - http://www.gluster.org/docs/index.php/GlusterFS > > ------------------------------ > > _______________________________________________ > Gluster-devel mailing list > Gluster-devel@xxxxxxxxxx > http://lists.nongnu.org/mailman/listinfo/gluster-devel > > -- Amar Tumballi Engineer - Gluster Core Team [bulde on #gluster/irc.gnu.org] http://www.zresearch.com - Commoditizing Supercomputing and Superstorage!