diff options
Diffstat (limited to 'doc/examples')
-rw-r--r-- | doc/examples/Makefile.am | 2 | ||||
-rw-r--r-- | doc/examples/README | 8 | ||||
-rw-r--r-- | doc/examples/io-cache.vol | 22 | ||||
-rw-r--r-- | doc/examples/io-threads.vol | 13 | ||||
-rw-r--r-- | doc/examples/posix-locks.vol | 7 | ||||
-rw-r--r-- | doc/examples/protocol-client.vol | 15 | ||||
-rw-r--r-- | doc/examples/protocol-server.vol | 16 | ||||
-rw-r--r-- | doc/examples/read-ahead.vol | 14 | ||||
-rw-r--r-- | doc/examples/replicate.vol | 17 | ||||
-rw-r--r-- | doc/examples/stripe.vol | 17 | ||||
-rw-r--r-- | doc/examples/trace.vol | 11 | ||||
-rw-r--r-- | doc/examples/trash.vol | 8 | ||||
-rw-r--r-- | doc/examples/unify.vol | 178 | ||||
-rw-r--r-- | doc/examples/write-behind.vol | 15 |
14 files changed, 84 insertions, 259 deletions
diff --git a/doc/examples/Makefile.am b/doc/examples/Makefile.am index b4c93f4c90b..af8fe1fd8e0 100644 --- a/doc/examples/Makefile.am +++ b/doc/examples/Makefile.am @@ -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) diff --git a/doc/examples/README b/doc/examples/README index 4d472ac086e..73275157160 100644 --- a/doc/examples/README +++ b/doc/examples/README @@ -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. diff --git a/doc/examples/io-cache.vol b/doc/examples/io-cache.vol index 5f3eca4c527..a71745017a2 100644 --- a/doc/examples/io-cache.vol +++ b/doc/examples/io-cache.vol @@ -5,21 +5,27 @@ 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 force-revalidate-timeout 5 # 1second is default option priority *.html:2,*:1 # default is *:0 end-volume diff --git a/doc/examples/io-threads.vol b/doc/examples/io-threads.vol index 9954724e1fe..236f5b8b188 100644 --- a/doc/examples/io-threads.vol +++ b/doc/examples/io-threads.vol @@ -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 diff --git a/doc/examples/posix-locks.vol b/doc/examples/posix-locks.vol index b9c9e7a6481..673afa3f8ae 100644 --- a/doc/examples/posix-locks.vol +++ b/doc/examples/posix-locks.vol @@ -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 diff --git a/doc/examples/protocol-client.vol b/doc/examples/protocol-client.vol index 43c43e02d54..c34ef790d0e 100644 --- a/doc/examples/protocol-client.vol +++ b/doc/examples/protocol-client.vol @@ -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.socket.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 diff --git a/doc/examples/protocol-server.vol b/doc/examples/protocol-server.vol index e8e4a464383..195e4965782 100644 --- a/doc/examples/protocol-server.vol +++ b/doc/examples/protocol-server.vol @@ -1,4 +1,3 @@ - ### Export volume "brick" with the contents of "/home/export" directory. volume brick type storage/posix # POSIX FS translator @@ -9,17 +8,14 @@ end-volume volume server type protocol/server option transport-type tcp # For TCP/IP transport -# option transport.socket.listen-port 24016 +# 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 + subvolumes brick option auth.addr.brick.allow 192.168.* # Allow access to "brick" volume end-volume diff --git a/doc/examples/read-ahead.vol b/doc/examples/read-ahead.vol index 3ce0d95aca7..9e4dba55627 100644 --- a/doc/examples/read-ahead.vol +++ b/doc/examples/read-ahead.vol @@ -8,15 +8,17 @@ end-volume ## 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) +# + +# '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 diff --git a/doc/examples/replicate.vol b/doc/examples/replicate.vol index 333ba7de1aa..10626d46f05 100644 --- a/doc/examples/replicate.vol +++ b/doc/examples/replicate.vol @@ -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. #========================================================================= @@ -23,8 +24,7 @@ end-volume 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 + option transport.socket.listen-port 24016 subvolumes brick1 option auth.addr.brick1.allow * # access to "brick" volume end-volume @@ -49,7 +49,7 @@ end-volume volume server type protocol/server option transport-type tcp # For TCP/IP transport - option transport.socket.listen-port 24017 + option transport.socket.listen-port 24017 subvolumes brick2 option auth.addr.brick2.allow * # Allow access to "brick" volume end-volume @@ -75,7 +75,7 @@ end-volume volume server type protocol/server option transport-type tcp # For TCP/IP transport - option transport.socket.listen-port 24018 + option transport.socket.listen-port 24018 subvolumes brick3 option auth.addr.brick3.allow * # access to "brick" volume end-volume @@ -90,7 +90,7 @@ volume client1 type protocol/client option transport-type tcp # for TCP/IP transport option remote-host 127.0.0.1 # IP address of the remote brick - option transport.socket.remote-port 24016 + option transport.socket.remote-port 24016 option remote-subvolume brick1 # name of the remote volume end-volume @@ -99,7 +99,7 @@ volume client2 type protocol/client option transport-type tcp # for TCP/IP transport option remote-host 127.0.0.1 # IP address of the remote brick - option transport.socket.remote-port 24017 + option transport.socket.remote-port 24017 option remote-subvolume brick2 # name of the remote volume end-volume @@ -107,7 +107,7 @@ volume client3 type protocol/client option transport-type tcp # for TCP/IP transport option remote-host 127.0.0.1 # IP address of the remote brick - option transport.socket.remote-port 24018 + option transport.socket.remote-port 24018 option remote-subvolume brick3 # name of the remote volume end-volume @@ -116,4 +116,3 @@ volume replicate type cluster/replicate subvolumes client1 client2 client3 end-volume - diff --git a/doc/examples/stripe.vol b/doc/examples/stripe.vol index 6055b66b922..9524e8198bf 100644 --- a/doc/examples/stripe.vol +++ b/doc/examples/stripe.vol @@ -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. #========================================================================= @@ -24,8 +25,7 @@ end-volume 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 + option transport.socket.listen-port 24016 subvolumes brick1 option auth.addr.brick1.allow * # access to "brick" volume end-volume @@ -50,7 +50,7 @@ end-volume volume server type protocol/server option transport-type tcp # For TCP/IP transport - option transport.socket.listen-port 24017 + option transport.socket.listen-port 24017 subvolumes brick2 option auth.addr.brick2.allow * # Allow access to "brick" volume end-volume @@ -76,7 +76,7 @@ end-volume volume server type protocol/server option transport-type tcp # For TCP/IP transport - option transport.socket.listen-port 24018 + option transport.socket.listen-port 24018 subvolumes brick3 option auth.addr.brick3.allow * # access to "brick" volume end-volume @@ -91,7 +91,7 @@ volume client1 type protocol/client option transport-type tcp # for TCP/IP transport option remote-host 127.0.0.1 # IP address of the remote brick - option transport.socket.remote-port 24016 + option transport.socket.remote-port 24016 option remote-subvolume brick1 # name of the remote volume end-volume @@ -100,7 +100,7 @@ volume client2 type protocol/client option transport-type tcp # for TCP/IP transport option remote-host 127.0.0.1 # IP address of the remote brick - option transport.socket.remote-port 24017 + option transport.socket.remote-port 24017 option remote-subvolume brick2 # name of the remote volume end-volume @@ -108,7 +108,7 @@ volume client3 type protocol/client option transport-type tcp # for TCP/IP transport option remote-host 127.0.0.1 # IP address of the remote brick - option transport.socket.remote-port 24018 + option transport.socket.remote-port 24018 option remote-subvolume brick3 # name of the remote volume end-volume @@ -118,4 +118,3 @@ volume stripe subvolumes client1 client2 client3 option block-size 1MB end-volume - diff --git a/doc/examples/trace.vol b/doc/examples/trace.vol index 3f4864db496..59830f26a9d 100644 --- a/doc/examples/trace.vol +++ b/doc/examples/trace.vol @@ -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. diff --git a/doc/examples/trash.vol b/doc/examples/trash.vol index 16e71be3232..3fcf315af08 100644 --- a/doc/examples/trash.vol +++ b/doc/examples/trash.vol @@ -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 diff --git a/doc/examples/unify.vol b/doc/examples/unify.vol deleted file mode 100644 index 3fb7e832086..00000000000 --- a/doc/examples/unify.vol +++ /dev/null @@ -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 - diff --git a/doc/examples/write-behind.vol b/doc/examples/write-behind.vol index 9c6bae11c53..2b5ed413921 100644 --- a/doc/examples/write-behind.vol +++ b/doc/examples/write-behind.vol @@ -8,19 +8,20 @@ end-volume ## 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) -# +# -### '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 disable-for-first-nbytes 128KB #default is 1 + option enable-O_SYNC no # default is no + option disable-for-first-nbytes 128KB #default is 1 end-volume |