Review comments needed

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

-- 
Amar Tumballi
Engineer - Gluster Core Team
[bulde on #gluster/irc.gnu.org]
http://www.zresearch.com - Commoditizing Supercomputing and Superstorage!
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


[Index of Archives]     [Gluster Users]     [Ceph Users]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux