Bring `examples' directory upto date.

Signed-off-by: Sachidananda Urs <sac@gluster.com>
Signed-off-by: Anand Avati <avati@gluster.com>

BUG: 3031 (Fix share/{doc,man} directory)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=3031
This commit is contained in:
Sachidananda 2011-06-15 06:54:22 +00:00 committed by Anand Avati
parent 4ba661f598
commit 4566fb78c1
14 changed files with 84 additions and 259 deletions

View File

@ -1,4 +1,4 @@
EXTRA = README unify.vol replicate.vol stripe.vol protocol-client.vol protocol-server.vol posix-locks.vol trash.vol write-behind.vol io-threads.vol io-cache.vol read-ahead.vol filter.vol trace.vol
EXTRA = README replicate.vol stripe.vol protocol-client.vol protocol-server.vol posix-locks.vol trash.vol write-behind.vol io-threads.vol io-cache.vol read-ahead.vol filter.vol trace.vol
EXTRA_DIST = $(EXTRA)
docdir = $(datadir)/doc/$(PACKAGE_NAME)

View File

@ -1,8 +1,8 @@
GlusterFS's translator feature is very flexible and there are quite a lot of ways one
can configure their filesystem to behave like.
GlusterFS's translator feature is very flexible and there are quite a lot of
ways one can configure their filesystem to behave like.
Volume Specification is a way in which GlusterFS understands how it has to work, based
on what is written there.
Volume Specification is a way in which GlusterFS understands how it has to work,
based on what is written there.
Going through the following URLs may give you more idea about all these.

View File

@ -5,20 +5,26 @@ volume client
option remote-subvolume brick # name of the remote volume
end-volume
## In normal clustered storage type, any of the cluster translators can come here.
## In normal clustered storage type, any of the cluster translators can come
# here.
#
# Definition of other clients
#
# Definition of cluster translator (may be unify, replicate, or unify over replicate)
# Definition of cluster translator (may be distribute, replicate, or distribute
# over replicate)
#
### 'IO-Cache' translator is best used on client side when a filesystem has file which are not modified frequently but read several times. For example, while compiling a kernel, *.h files are read while compiling every *.c file, in these case, io-cache translator comes very handy, as it keeps the whole file content in the cache, and serves from the cache.
### 'IO-Cache' translator is best used on client side when a filesystem has file
# which are not modified frequently but read several times. For example, while
# compiling a kernel, *.h files are read while compiling every *.c file, in
# these case, io-cache translator comes very handy, as it keeps the whole file
# content in the cache, and serves from the cache.
# One can provide the priority of the cache too.
volume ioc
type performance/io-cache
subvolumes client # In this example it is 'client' you may have to change it according to your spec file.
option page-size 1MB # 128KB is default
subvolumes client # In this example it is 'client' you may have to
# change it according to your spec file.
option cache-size 64MB # 32MB is default
option force-revalidate-timeout 5 # 1second is default
option priority *.html:2,*:1 # default is *:0

View File

@ -1,11 +1,13 @@
volume brick
type storage/posix # POSIX FS translator
option directory /home/export # Export this directory
end-volume
### 'IO-threads' translator gives a threading behaviour to File I/O calls. All other normal fops are having default behaviour. Loading this on server side helps to reduce the contension of network. (Which is assumed as a GlusterFS hang).
# One can load it in client side to reduce the latency involved in case of a slow network, when loaded below write-behind.
### 'IO-threads' translator gives a threading behaviour to File I/O calls. All
# other normal fops are having default behaviour. Loading this on server side
# helps to reduce the contension of network. (Which is assumed as a GlusterFS
# hang).
volume iot
type performance/io-threads
subvolumes brick
@ -14,8 +16,7 @@ end-volume
volume server
type protocol/server
subvolumes iot brick
subvolumes iot
option transport-type tcp # For TCP/IP transport
option auth.addr.brick.allow 192.168.* # Allow access to "brick" volume
option auth.addr.iot.allow 192.168.* # Allow access to "p-locks" volume
option auth.addr.iot.allow 192.168.*
end-volume

View File

@ -1,10 +1,10 @@
volume brick
type storage/posix # POSIX FS translator
option directory /home/export # Export this directory
end-volume
### 'Posix-locks' feature should be added on the server side (as posix volume as subvolume) because it contains the actual file.
# 'Posix-locks' feature should be added on the server side.
volume p-locks
type features/posix-locks
subvolumes brick
@ -13,8 +13,7 @@ end-volume
volume server
type protocol/server
subvolumes p-locks brick
subvolumes p-locks
option transport-type tcp
option auth.addr.brick.allow 192.168.* # Allow access to "brick" volume
option auth.addr.p-locks.allow 192.168.* # Allow access to "p-locks" volume
end-volume

View File

@ -1,17 +1,12 @@
volume client
type protocol/client
option transport-type tcp # for TCP/IP transport
# option transport-type ib-sdp # for Infiniband transport
option remote-host 192.168.1.10 # IP address of the remote brick
# option transport.socket.remote-port 24016
# option transport-type ib-verbs # for Infiniband verbs transport
# option transport.ib-verbs.work-request-send-size 1048576
# option transport.ib-verbs.work-request-send-count 16
# option transport.ib-verbs.work-request-recv-size 1048576
# option transport.ib-verbs.work-request-recv-count 16
# option transport.ib-verbs.remote-port 24016
# option transport-type rdma # for Infiniband verbs transport
# option transport.rdma.work-request-send-count 16
# option transport.rdma.work-request-recv-count 16
# option transport.rdma.remote-port 24016
option remote-subvolume brick # name of the remote volume
# option transport-timeout 30 # default value is 120seconds
end-volume

View File

@ -1,4 +1,3 @@
### Export volume "brick" with the contents of "/home/export" directory.
volume brick
type storage/posix # POSIX FS translator
@ -11,15 +10,12 @@ volume server
option transport-type tcp # For TCP/IP transport
# option transport.socket.listen-port 24016
# option transport-type ib-verbs # For Infiniband Verbs transport
# option transport.ib-verbs.work-request-send-size 131072
# option transport.ib-verbs.work-request-send-count 64
# option transport.ib-verbs.work-request-recv-size 131072
# option transport.ib-verbs.work-request-recv-count 64
# option transport.ib-verbs.listen-port 24016
# option transport-type rdma
# option transport.rdma.work-request-send-count 64
# option transport.rdma.work-request-recv-count 64
# option transport.rdma.listen-port 24016
# option bind-address 192.168.1.10 # Default is to listen on all interfaces
# option client-volume-filename /etc/glusterfs/glusterfs-client.vol
subvolumes brick
option auth.addr.brick.allow 192.168.* # Allow access to "brick" volume
end-volume

View File

@ -9,14 +9,16 @@ end-volume
#
# Definition of other clients
#
# Definition of cluster translator (may be unify, replicate, or unify over replicate)
# Definition of cluster translator (may be distribute, replicate, or distribute
# over replicate)
#
### 'Read-Ahead' translator is best utilized on client side, as it prefetches the file contents when the first read() call is issued.
# 'Read-Ahead' translator is best utilized on client side, as it prefetches
# the file contents when the first read() call is issued.
volume ra
type performance/read-ahead
subvolumes client # In this example it is 'client' you may have to change it according to your spec file.
option page-size 1MB # default is 256KB
subvolumes client
option page-count 4 # default is 2
option force-atime-update no # defalut is 'no'
end-volume

View File

@ -1,5 +1,6 @@
### 'NOTE'
# This file has both server spec and client spec to get an understanding of stripe's spec file. Hence can't be used as it is, as a GlusterFS spec file.
# This file has both server spec and client spec to get an understanding of
# replicate spec file. Hence can't be used as it is, as a GlusterFS spec file.
# One need to seperate out server spec and client spec to get it working.
#=========================================================================
@ -24,7 +25,6 @@ volume server
type protocol/server
option transport-type tcp # For TCP/IP transport
option transport.socket.listen-port 24016
# option client-volume-filename /etc/glusterfs/glusterfs-client.vol
subvolumes brick1
option auth.addr.brick1.allow * # access to "brick" volume
end-volume
@ -116,4 +116,3 @@ volume replicate
type cluster/replicate
subvolumes client1 client2 client3
end-volume

View File

@ -1,6 +1,7 @@
### 'NOTE'
# This file has both server spec and client spec to get an understanding of stripe's spec file. Hence can't be used as it is, as a GlusterFS spec file.
# This file has both server spec and client spec to get an understanding of
# stripe's spec file. Hence can't be used as it is, as a GlusterFS spec file.
# One need to seperate out server spec and client spec to get it working.
#=========================================================================
@ -25,7 +26,6 @@ volume server
type protocol/server
option transport-type tcp # For TCP/IP transport
option transport.socket.listen-port 24016
# option client-volume-filename /etc/glusterfs/glusterfs-client.vol
subvolumes brick1
option auth.addr.brick1.allow * # access to "brick" volume
end-volume
@ -118,4 +118,3 @@ volume stripe
subvolumes client1 client2 client3
option block-size 1MB
end-volume

View File

@ -5,12 +5,17 @@ volume client
option remote-subvolume brick # name of the remote volume
end-volume
### 'Trace' translator is a very handy debug tool for GlusterFS, as it can be loaded between any of the two volumes without changing the behaviour of the filesystem.
# On client side it can be the top most volume in spec (like now) to understand what calls are made on FUSE filesystem, when a mounted filesystem is accessed.
### 'Trace' translator is a very handy debug tool for GlusterFS, as it can be
# loaded between any of the two volumes without changing the behaviour of the
# filesystem.
# On client side it can be the top most volume in spec (like now) to understand
# what calls are made on FUSE filesystem, when a mounted filesystem is
# accessed.
volume trace
type debug/trace
subvolumes client
end-volume
# 'NOTE:' By loading 'debug/trace' translator, filesystem will be very slow as it logs each and every calls to the log file.
# 'NOTE:' By loading 'debug/trace' translator, filesystem will be very slow as
# it logs each and every calls to the log file.

View File

@ -1,10 +1,11 @@
volume brick
type storage/posix # POSIX FS translator
option directory /home/export # Export this directory
end-volume
### 'Trash' translator is best used on server side as it just renames the deleted file inside 'trash-dir', and it makes 4 seperate fops for one unlink call.
### 'Trash' translator is best used on server side as it just renames the
# deleted file inside 'trash-dir', and it makes 4 seperate fops for one unlink
# call.
volume trashcan
type features/trash
subvolumes brick
@ -13,8 +14,7 @@ end-volume
volume server
type protocol/server
subvolumes trashcan brick
subvolumes trashcan
option transport-type tcp # For TCP/IP transport
option auth.addr.brick.allow 192.168.* # Allow access to "brick" volume
option auth.addr.trashcan.allow 192.168.* # Allow access to "p-locks" volume
end-volume

View File

@ -1,178 +0,0 @@
### 'NOTE'
# This file has both server spec and client spec to get an understanding of stripe's spec file. Hence can't be used as it is, as a GlusterFS spec file.
# One need to seperate out server spec and client spec to get it working.
#=========================================================================
# **** server1 spec file ****
### Export volume "brick" with the contents of "/home/export" directory.
volume posix1
type storage/posix # POSIX FS translator
option directory /home/export1 # Export this directory
end-volume
### Add POSIX record locking support to the storage brick
volume brick1
type features/posix-locks
option mandatory on # enables mandatory locking on all files
subvolumes posix1
end-volume
### Add network serving capability to above brick.
volume server
type protocol/server
option transport-type tcp # For TCP/IP transport
option transport.socket.listen-port 24016
# option client-volume-filename /etc/glusterfs/glusterfs-client.vol
subvolumes brick1
option auth.addr.brick1.allow * # access to "brick" volume
end-volume
#=========================================================================
# **** server2 spec file ****
volume posix2
type storage/posix # POSIX FS translator
option directory /home/export2 # Export this directory
end-volume
### Add POSIX record locking support to the storage brick
volume brick2
type features/posix-locks
option mandatory on # enables mandatory locking on all files
subvolumes posix2
end-volume
### Add network serving capability to above brick.
volume server
type protocol/server
option transport-type tcp # For TCP/IP transport
option transport.socket.listen-port 24017
subvolumes brick2
option auth.addr.brick2.allow * # Allow access to "brick" volume
end-volume
#=========================================================================
# **** server3 spec file ****
volume posix3
type storage/posix # POSIX FS translator
option directory /home/export3 # Export this directory
end-volume
### Add POSIX record locking support to the storage brick
volume brick3
type features/posix-locks
option mandatory on # enables mandatory locking on all files
subvolumes posix3
end-volume
### Add network serving capability to above brick.
volume server
type protocol/server
option transport-type tcp # For TCP/IP transport
option transport.socket.listen-port 24018
subvolumes brick3
option auth.addr.brick3.allow * # access to "brick" volume
end-volume
#=========================================================================
# *** server for namespace ***
### Export volume "brick" with the contents of "/home/export" directory.
volume brick-ns
type storage/posix # POSIX FS translator
option directory /home/export-ns # Export this directory
end-volume
volume server
type protocol/server
option transport-type tcp # For TCP/IP transport
option transport.socket.listen-port 24019
subvolumes brick-ns
option auth.addr.brick-ns.allow * # access to "brick" volume
end-volume
#=========================================================================
# **** Clustered Client config file ****
### Add client feature and attach to remote subvolume of server1
volume client1
type protocol/client
option transport-type tcp # for TCP/IP transport
# option transport-type ib-sdp # for Infiniband transport
option remote-host 127.0.0.1 # IP address of the remote brick
option transport.socket.remote-port 24016
option remote-subvolume brick1 # name of the remote volume
end-volume
### Add client feature and attach to remote subvolume of server2
volume client2
type protocol/client
option transport-type tcp # for TCP/IP transport
# option transport-type ib-sdp # for Infiniband transport
option remote-host 127.0.0.1 # IP address of the remote brick
option transport.socket.remote-port 24017
option remote-subvolume brick2 # name of the remote volume
end-volume
volume client3
type protocol/client
option transport-type tcp # for TCP/IP transport
# option transport-type ib-sdp # for Infiniband transport
option remote-host 127.0.0.1 # IP address of the remote brick
option transport.socket.remote-port 24018
option remote-subvolume brick3 # name of the remote volume
end-volume
volume client-ns
type protocol/client
option transport-type tcp # for TCP/IP transport
# option transport-type ib-sdp # for Infiniband transport
option remote-host 127.0.0.1 # IP address of the remote brick
option transport.socket.remote-port 24019
option remote-subvolume brick-ns # name of the remote volume
end-volume
### Add unify feature to cluster the servers. Associate an
### appropriate scheduler that matches your I/O demand.
volume bricks
type cluster/unify
option namespace client-ns # this will not be storage child of unify.
subvolumes client1 client2 client3
### ** ALU Scheduler Option **
option self-heal background # foreground off # default is foreground
option scheduler alu
option alu.limits.min-free-disk 5% #%
option alu.limits.max-open-files 10000
option alu.order disk-usage:read-usage:write-usage:open-files-usage:disk-speed-usage
option alu.disk-usage.entry-threshold 2GB
option alu.disk-usage.exit-threshold 128MB
option alu.open-files-usage.entry-threshold 1024
option alu.open-files-usage.exit-threshold 32
option alu.read-usage.entry-threshold 20 #%
option alu.read-usage.exit-threshold 4 #%
option alu.write-usage.entry-threshold 20 #%
option alu.write-usage.exit-threshold 4 #%
option alu.disk-speed-usage.entry-threshold 0 # DO NOT SET IT. SPEED IS CONSTANT!!!.
option alu.disk-speed-usage.exit-threshold 0 # DO NOT SET IT. SPEED IS CONSTANT!!!.
option alu.stat-refresh.interval 10sec
option alu.stat-refresh.num-file-create 10
### ** Random Scheduler **
# option scheduler random
### ** NUFA Scheduler **
# option scheduler nufa
# option nufa.local-volume-name posix1
### ** Round Robin (RR) Scheduler **
# option scheduler rr
# option rr.limits.min-free-disk 5% #%
end-volume

View File

@ -13,14 +13,15 @@ end-volume
#
### 'Write-behind' translator is a performance booster for write operation. Best used on client side, as its main intension is to reduce the network latency caused for each write operation.
# 'Write-behind' translator is a performance booster for write operation. Best
# used on client side, as its main intension is to reduce the network latency
# caused for each write operation.
volume wb
type performance/write-behind
subvolumes client # In this example it is 'client' you may have to change it according to your spec file.
subvolumes client
option flush-behind on # default value is 'off'
option window-size 2MB
option aggregate-size 1MB # default value is 0
option enable_O_SYNC no # default is no
option enable-O_SYNC no # default is no
option disable-for-first-nbytes 128KB #default is 1
end-volume