[Gluster-devel] cluster/stripe

Amar S. Tumballi amar at zresearch.com
Wed Sep 26 17:11:05 UTC 2007


Hi Alexey,
 These trace log helped a lot.. I got the problem. Will be fixing the bug
soon.

 The issue is that, in older kernels fuse module sends 'creat()' call as
'mknod();open()' one after another. And sadly I had not implemented striping
option in mknod() fop. hence, the file is created in only one node.  With
people using newer kernel version, this problem is not there.

Thanks and Regards,
Amar

On 9/26/07, Alexey Filin <alexey.filin at gmail.com> wrote:
>
> Hi Raghavendra,
>
> On 9/26/07, Raghavendra G <raghavendra.hg at gmail.com> wrote:
>
> > some more questions.
> > 1. Are the bricks exported by the server are empty? i.e., are you trying
> > to use stripe on already _existing_ files ? Note that stripe works only
> on
> > those files which are created through it.
>
>
> yes, they are. I clean up glusterfs before each test.
>
> 2. Is the size of the file being stripped is greater than the block size
> > configured in the server spec file? But in any case atleast file should
> be
> > created on both server bricks.
>
>
> file is 432M.
>
> It's very interesting, I don't see second copy at all even empty
>
> cp-related lines in logfiles (tla 495):
>
> client:
>
> 2007-09-26 18:58:16 D [trace.c:971:trace_lookup] ctrace: callid: 2
> (*this=0x9614910, loc=0x964ef9c {path=, inode=0x964bc98}, need_xattr=0 )
> 2007-09-26 18:58:16 D [trace.c:435:trace_lookup_cbk] ctrace: callid: 2
> (*this=0x9614910, op_ret=0, op_errno=0, inode=0x964bc98, *buf=0x964f104
> {st_dev=64768, st_ino=131, st_mode=16895, st_nlink=2, st_uid=0, st_gid=0,
> st_rdev=0, st_size=6, st_blksize=4096, st_blocks=0})
> 2007-09-26 18:58:16 D [trace.c:971:trace_lookup] ctrace: callid: 3
> (*this=0x9614910, loc=0x964ef4c {path=, inode=0x964bc98}, need_xattr=0 )
> 2007-09-26 18:58:16 D [trace.c:435:trace_lookup_cbk] ctrace: callid: 3
> (*this=0x9614910, op_ret=0, op_errno=0, inode=0x964bc98, *buf=0x964f104
> {st_dev=64768, st_ino=131, st_mode=16895, st_nlink=2, st_uid=0, st_gid=0,
> st_rdev=0, st_size=6, st_blksize=4096, st_blocks=0})
> 2007-09-26 18:58:16 D [fuse-bridge.c:423:fuse_lookup] glusterfs-fuse:
> LOOKUP
> 1/pdst.dat.gz (/pdst.dat.gz)
> 2007-09-26 18:58:16 D [trace.c:971:trace_lookup] ctrace: callid: 4
> (*this=0x9614910, loc=0x964ef4c {path=/pdst.dat.gz, inode=0x964efb0},
> need_xattr=0 )
> 2007-09-26 18:58:16 D [trace.c:440:trace_lookup_cbk] ctrace:
> (*this=0x9614910, op_ret=-1, op_errno=2)
> 2007-09-26 18:58:16 D [fuse-bridge.c:378:fuse_entry_cbk] glusterfs-fuse:
> ERR
> => -1 (2)
> 2007-09-26 18:58:16 D [inode.c:308:__destroy_inode] fuse/inode: destroy
> inode(0) [@0x964efb0]
> 2007-09-26 18:58:16 D [fuse-bridge.c:423:fuse_lookup] glusterfs-fuse:
> LOOKUP
> 1/pdst.dat.gz (/pdst.dat.gz)
> 2007-09-26 18:58:16 D [trace.c:971:trace_lookup] ctrace: callid: 5
> (*this=0x9614910, loc=0x964f19c {path=/pdst.dat.gz, inode=0x964f0d8},
> need_xattr=0 )
> 2007-09-26 18:58:16 D [trace.c:440:trace_lookup_cbk] ctrace:
> (*this=0x9614910, op_ret=-1, op_errno=2)
> 2007-09-26 18:58:16 D [fuse-bridge.c:378:fuse_entry_cbk] glusterfs-fuse:
> ERR
> => -1 (2)
> 2007-09-26 18:58:16 D [inode.c:308:__destroy_inode] fuse/inode: destroy
> inode(0) [@0x964f0d8]
> 2007-09-26 18:58:16 D [trace.c:1076:trace_mknod] ctrace: (*this=0x9614910,
> loc=0x964f19c {path=/pdst.dat.gz, inode=0x964f0d8}, mode=33188, dev=0)
> 2007-09-26 18:58:16 D [trace.c:517:trace_mknod_cbk] ctrace:
> (*this=0x9614910, op_ret=0, op_errno=2, inode=0x964f0d8, *buf=0x964efa8
> {st_dev=64768, st_ino=132, st_mode=33188, st_nlink=1, st_uid=0, st_gid=0,
> st_rdev=0, st_size=0, st_blksize=4096, st_blocks=0, st_atime=[Sep 26
> 18:58:16], st_mtime=[Sep 26 18:58:16], st_ctime=[Sep 26 18:58:16]})
> 2007-09-26 18:58:16 D [fuse-bridge.c:346:fuse_entry_cbk] glusterfs-fuse:
> ENTRY => 132
> 2007-09-26 18:58:16 D [inode.c:559:__create_inode] fuse/inode: create
> inode(132)
> 2007-09-26 18:58:16 D [inode.c:351:__active_inode] fuse/inode: activating
> inode(132), lru=0/1024
> 2007-09-26 18:58:16 D [inode.c:381:__passive_inode] fuse/inode:
> passivating
> inode(132), lru=1/1024
> 2007-09-26 18:58:16 D [inode.c:308:__destroy_inode] fuse/inode: destroy
> inode(0) [@0x964f0d8]
> 2007-09-26 18:58:16 D [inode.c:351:__active_inode] fuse/inode: activating
> inode(132), lru=0/1024
> 2007-09-26 18:58:16 D [trace.c:1334:trace_open] ctrace: (*this=0x9614910,
> loc=0x964f19c {path=/pdst.dat.gz, inode=0x964f508}, flags=32769,
> fd=0x964f200)
> 2007-09-26 18:58:16 D [trace.c:100:trace_open_cbk] ctrace:
> (*this=0x9614910,
> op_ret=0, op_errno=0, *fd=0x964f200)
> 2007-09-26 18:58:16 D [trace.c:1410:trace_writev] ctrace:
> (*this=0x9614910,
> *fd=0x964f200, *vector=0xbfe74a30, count=1, offset=0)
> 2007-09-26 18:58:16 D [trace.c:189:trace_writev_cbk] ctrace:
> (*this=0x9614910, op_ret=1048576, op_errno=2, *buf=0x964f7b8
> {st_dev=64768,
> st_ino=132, st_mode=33188, st_nlink=1, st_uid=0, st_gid=0, st_rdev=0,
> st_size=1048576, st_blksize=4096, st_blocks=0, st_atime=[Sep 26 18:58:16],
> st_mtime=[Sep 26 18:58:16], st_ctime=[Sep 26 18:58:16]})
> ...
> 2007-09-26 18:58:38 D [trace.c:1410:trace_writev] ctrace:
> (*this=0x9614910,
> *fd=0x964f200, *vector=0xbfe74a30, count=1, offset=450887680)
> 2007-09-26 18:58:38 D [trace.c:189:trace_writev_cbk] ctrace:
> (*this=0x9614910, op_ret=996565, op_errno=2, *buf=0x964f7b8 {st_dev=64768,
> st_ino=132, st_mode=33188, st_nlink=1, st_uid=0, st_gid=0, st_rdev=0,
> st_size=451884245, st_blksize=4096, st_blocks=851968, st_atime=[Sep 26
> 18:58:16], st_mtime=[Sep 26 18:58:38], st_ctime=[Sep 26 18:58:38]})
> 2007-09-26 18:58:38 D [trace.c:1452:trace_flush] ctrace: (*this=0x9614910,
> *fd=0x964f200)
> 2007-09-26 18:58:38 D [trace.c:594:trace_flush_cbk] ctrace:
> (*this=0x9614910, op_ret=0, op_errno=0)
> 2007-09-26 18:58:38 D [trace.c:1472:trace_close] ctrace: (*this=0x9614910,
> *fd=0x964f200)
> 2007-09-26 18:58:38 D [trace.c:612:trace_close_cbk] ctrace:
> (*this=0x9614910, op_ret=0, op_errno=2)
> 2007-09-26 18:58:38 D [inode.c:381:__passive_inode] fuse/inode:
> passivating
> inode(132), lru=1/1024
>
> brick1:
>
> 2007-09-26 18:58:16 D [inode.c:559:__create_inode] brick/inode: create
> inode(131)
> 2007-09-26 18:58:16 D [inode.c:351:__active_inode] brick/inode: activating
> inode(131), lru=0/1024
> 2007-09-26 18:58:16 D [inode.c:381:__passive_inode] brick/inode:
> passivating
> inode(131), lru=1/1024
> 2007-09-26 18:58:16 D [inode.c:308:__destroy_inode] brick/inode: destroy
> inode(0) [@0xa002560]
> 2007-09-26 18:58:16 D [inode.c:351:__active_inode] brick/inode: activating
> inode(131), lru=0/1024
> 2007-09-26 18:58:16 D [inode.c:381:__passive_inode] brick/inode:
> passivating
> inode(131), lru=1/1024
> 2007-09-26 18:58:16 D [inode.c:308:__destroy_inode] brick/inode: destroy
> inode(0) [@0xa0027b0]
> 2007-09-26 18:58:16 D [inode.c:308:__destroy_inode] brick/inode: destroy
> inode(0) [@0xa0027b0]
> 2007-09-26 18:58:16 D [inode.c:559:__create_inode] brick/inode: create
> inode(132)
> 2007-09-26 18:58:16 D [inode.c:351:__active_inode] brick/inode: activating
> inode(132), lru=1/1024
> 2007-09-26 18:58:16 D [inode.c:381:__passive_inode] brick/inode:
> passivating
> inode(132), lru=2/1024
> 2007-09-26 18:58:16 D [inode.c:351:__active_inode] brick/inode: activating
> inode(132), lru=1/1024
> 2007-09-26 18:58:38 D [inode.c:381:__passive_inode] brick/inode:
> passivating
> inode(132), lru=2/1024
>
> brick2:
>
> 2007-09-26 18:58:16 D [inode.c:559:__create_inode] brick/inode: create
> inode(131)
> 2007-09-26 18:58:16 D [inode.c:351:__active_inode] brick/inode: activating
> inode(131), lru=0/1024
> 2007-09-26 18:58:16 D [inode.c:381:__passive_inode] brick/inode:
> passivating
> inode(131), lru=1/1024
> 2007-09-26 18:58:16 D [inode.c:308:__destroy_inode] brick/inode: destroy
> inode(0) [@0x996e560]
> 2007-09-26 18:58:16 D [inode.c:351:__active_inode] brick/inode: activating
> inode(131), lru=0/1024
> 2007-09-26 18:58:16 D [inode.c:381:__passive_inode] brick/inode:
> passivating
> inode(131), lru=1/1024
> 2007-09-26 18:58:16 D [inode.c:308:__destroy_inode] brick/inode: destroy
> inode(0) [@0x996e7b0]
> 2007-09-26 18:58:16 D [inode.c:308:__destroy_inode] brick/inode: destroy
> inode(0) [@0x996e7b0]
>
> inode 132 is not created on brick2
>
> your rpc is a trick, debug print in callbacks crashes process :-/
>
> thanks for hints
>
> regards, Alexey
> _______________________________________________
> Gluster-devel mailing list
> Gluster-devel at nongnu.org
> http://lists.nongnu.org/mailman/listinfo/gluster-devel
>



-- 
Amar Tumballi
Gluster/GlusterFS Hacker
[bulde on #gluster/irc.gnu.org]
http://www.zresearch.com - Commoditizing Supercomputing and Superstorage!



More information about the Gluster-devel mailing list