[Gluster-devel] Review comments needed

Paul Jochum jochum at alcatel-lucent.com
Fri Sep 7 19:00:26 UTC 2007


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

- and recommending turning off (or modifying) iptables is needed to 
communicate over TCP/IP.

regards,

Paul Jochum

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 at nongnu.org
> http://lists.nongnu.org/mailman/listinfo/gluster-devel
>   



More information about the Gluster-devel mailing list