[Gluster-devel] Self-heal / inconsistancy issue.

Amar S. Tumballi amar at zresearch.com
Fri Jul 13 00:40:31 UTC 2007


Hi Scott,
 You are seeing this behaviour due to your spec file. This is a
inconsistency for unify as you have file on both machine1 and machine2, and
according to your spec file *only* unify is used, not afr. (ie you will not
have mirroring ability). As you have just two clients (client1, client2) use
either unify, or afr according to needs.

-amar

On 7/13/07, Scott McNally <smcnally at p2pengineering.com> wrote:
>
> Sequence to reproduce bug on the version posted to the zresearch site on
> July 12th.  (pre4)
>
> gedit "whatever"  - brand new file on machine 1
> save with a line of text
>
> gedit "whatever" - machine 2 - append a new line of text
>
> return to machine 1 ..
>
> more "whatever"
>
> returns "No such file or directory" rather than opening the file and
> displaying its contents.
>
>
>
> 2007-07-12 16:57:39 D [fuse-bridge.c:413:fuse_getattr] glusterfs-fuse:
> GETATTR 1 ()
> 2007-07-12 16:57:39 D [fuse-bridge.c:413:fuse_getattr] glusterfs-fuse:
> GETATTR 1 ()
> 2007-07-12 16:57:41 D [fuse-bridge.c:413:fuse_getattr] glusterfs-fuse:
> GETATTR 1 ()
> 2007-07-12 16:57:41 D [fuse-bridge.c:413:fuse_getattr] glusterfs-fuse:
> GETATTR 1 ()
> 2007-07-12 16:57:42 D [inode.c:302:__active_inode] fuse/inode: activating
> inode(4530001), lru=2/1024
> 2007-07-12 16:57:42 D [fuse-bridge.c:338:fuse_lookup] glusterfs-fuse:
> LOOKUP
> 1/dealer (/dealer)
> 2007-07-12 16:57:42 D [inode.c:511:__create_inode] namespace2/inode:
> create
> inode(2377228)
> 2007-07-12 16:57:42 D [inode.c:302:__active_inode] namespace2/inode:
> activating inode(2377228), lru=0/1000
> 2007-07-12 16:57:42 E [afr.c:333:afr_lookup_cbk] ERROR: afr.c:
> afr_lookup_cbk: (gic->inode != inode) is true
> 2007-07-12 16:57:42 D [inode.c:260:__destroy_inode] namespace2/inode:
> destroy inode(2377228)
> 2007-07-12 16:57:42 D [inode.c:511:__create_inode] namespace1/inode:
> create
> inode(4530028)
> 2007-07-12 16:57:42 D [inode.c:302:__active_inode] namespace1/inode:
> activating inode(4530028), lru=0/1000
> 2007-07-12 16:57:42 E [afr.c:333:afr_lookup_cbk] ERROR: afr.c:
> afr_lookup_cbk: (gic->inode != inode) is true
> 2007-07-12 16:57:42 D [inode.c:260:__destroy_inode] namespace1/inode:
> destroy inode(4530028)
> 2007-07-12 16:57:42 D [fuse-bridge.c:288:fuse_entry_cbk] glusterfs-fuse:
> ENTRY => 4530001
> 2007-07-12 16:57:42 D [inode.c:332:__passive_inode] fuse/inode:
> passivating
> inode(4530001), lru=3/1024
> 2007-07-12 16:57:42 D [inode.c:302:__active_inode] fuse/inode: activating
> inode(4530001), lru=2/1024
> 2007-07-12 16:57:42 E [afr.c:696:afr_open_cbk] namespace-afr:
> (path=/dealer)
> op_ret=0 op_errno=2
> 2007-07-12 16:57:42 D [inode.c:332:__passive_inode] fuse/inode:
> passivating
> inode(4530001), lru=3/1024
>
>
>
>
>
> server configuration on both machines
>
> volume brick
>   type storage/posix                   # POSIX FS translator
>   option directory /var/glustervolume    # Export this directory
> end-volume
>
> volume brick-ns
>   type storage/posix
>   option directory /var/glusterNamespace
> end-volume
>
> ### Add network serving capability to above brick.
> volume server
>   type protocol/server
>   option transport-type tcp/server     # For TCP/IP transport
>   subvolumes brick brick-ns
>   option auth.ip.brick.allow * # Allow access to "brick" volume
>   option auth.ip.brick-ns.allow *
> end-volume
>
>
> configuration on clients (reverse the ips of course)
>
> ## NAMESPACE  volume
> ## the namespace volume stores the directory structure and
> ## helps with the healing of nodes
> volume namespace1
>   type protocol/client
>   option transport-type tcp/client
>   option remote-host 192.168.0.138
>   option transport-timeout 30
>   option remote-subvolume brick-ns
> end-volume
>
> volume namespace2
>   type protocol/client
>   option transport-type tcp/client
>   option remote-host 192.168.0.139
>   option transport-timeout 30
>   option remote-subvolume brick-ns
> end-volume
>
> volume namespace-afr
>   type cluster/afr
>   subvolumes namespace1 namespace2
>   option replicate *:2
> end-volume
>
> ##end namespace volume
>
> ## client volumes
>
> volume client1
>   type protocol/client
>   option transport-type tcp/client     # for TCP/IP transport
>   option remote-host 192.168.0.138         # IP address of the remote
> brick
> # option remote-port 6996              # default server port is 6996
>   option transport-timeout 30          # seconds to wait for a reply
>   option remote-subvolume brick        # name of the remote volume
> end-volume
>
> volume client2
>   type protocol/client
>   option transport-type tcp/client     # for TCP/IP transport
>   option remote-host 192.168.0.139         # IP address of the remote
> brick
> # option remote-port 6996              # default server port is 6996
>   option transport-timeout 30          # seconds to wait for a reply
>   option remote-subvolume brick        # name of the remote volume
> end-volume
>
> volume client-afr
>   type cluster/afr
>   subvolumes client1 client2
>   option replicate *:2
> end-volume
>
> ## now unify this 1 brick thing
> volume unify
>   type cluster/unify
>   option scheduler rr  # check alu, random, nufa
>   option rr.limits.min-free-disk 5 # 5% of free disk is minimum.
>   option namespace namespace-afr
>   subvolumes client1 client2
> end-volume
>
> ## Add readahead feature
> volume readahead
>   type performance/read-ahead
>   option page-size 65536     # unit in bytes
>   option page-count 16       # cache per file  = (page-count x page-size)
>   subvolumes unify
> end-volume
>
> ## Add IO-Cache feature
> volume iocache
>   type performance/io-cache
>   option page-size 128KB
>   option page-count 128
>   subvolumes readahead
> end-volume
>
> ## Add writeback feature
> volume writeback
>   type performance/write-behind
>   option aggregate-size 131072 # unit in bytes
>   subvolumes iocache
> end-volume
>
>
>
> _______________________________________________
> Gluster-devel mailing list
> Gluster-devel at nongnu.org
> http://lists.nongnu.org/mailman/listinfo/gluster-devel
>



-- 
Amar Tumballi
http://amar.80x25.org
[bulde on #gluster/irc.gnu.org]



More information about the Gluster-devel mailing list