[Gluster-users] Quota translator troubles
Patrick Ruckstuhl
patrick at tario.org
Fri Jan 30 16:27:08 UTC 2009
Hi Ananth,
here's the Config with the Quota on top:
Server (two servers with different ip addresses have this config)
### Log brick
volume log-posix
type storage/posix # POSIX FS translator
option directory /data/glusterfs/log # Export this directory
end-volume
### Add lock support
volume log-locks
type features/locks
subvolumes log-posix
end-volume
### Add performance translator
volume log-brick
type performance/io-threads
option thread-count 8
subvolumes log-locks
end-volume
### Add network serving capability to above brick.
volume server
type protocol/server
option transport-type tcp
option transport.socket.bind-address 192.168.0.4
subvolumes log-brick
option auth.addr.log-brick.allow 192.168.0.2,192.168.0.3,192.168.0.4 #
Allow access to "brick" volume
end-volume
Client
### Add client feature and attach to remote subvolume
volume log-remote-hip
type protocol/client
option transport-type tcp
option remote-host 192.168.0.3 # IP address of the remote brick
option remote-subvolume log-brick # name of the remote volume
end-volume
### Add client feature and attach to remote subvolume
volume log-remote-hop
type protocol/client
option transport-type tcp
option remote-host 192.168.0.4 # IP address of the remote brick
option remote-subvolume log-brick # name of the remote volume
end-volume
### This is a distributed volume
volume log-distribute
type cluster/distribute
subvolumes log-remote-hip log-remote-hop
end-volume
### Add writeback feature
volume log-writeback
type performance/write-behind
option block-size 512KB
option cache-size 100MB
option flush-behind off
subvolumes log-distribute
end-volume
### Add quota
#volume log
type features/quota
option disk-usage-limit 100GB
subvolumes log-writeback
#end-volume
This config results in the crash. (if you can't reproduce the crash with
this config I can see if I'll be able to run it with gdb)
The config that works is
Server (two servers with different ip addresses have this config)
### Log brick
volume log-posix
type storage/posix # POSIX FS translator
option directory /data/glusterfs/log # Export this directory
end-volume
### Add quota support
volume log-quota
type features/quota
option disk-usage-limit 100GB
subvolumes log-posix
end-volume
### Add lock support
volume log-locks
type features/locks
subvolumes log-quota
end-volume
### Add performance translator
volume log-brick
type performance/io-threads
option thread-count 8
subvolumes log-locks
end-volume
### Add network serving capability to above brick.
volume server
type protocol/server
option transport-type tcp
option transport.socket.bind-address 192.168.0.4
subvolumes log-brick
option auth.addr.log-brick.allow 192.168.0.2,192.168.0.3,192.168.0.4 #
Allow access to "brick" volume
end-volume
Client
### Add client feature and attach to remote subvolume
volume log-remote-hip
type protocol/client
option transport-type tcp
option remote-host 192.168.0.3 # IP address of the remote brick
option remote-subvolume log-brick # name of the remote volume
end-volume
### Add client feature and attach to remote subvolume
volume log-remote-hop
type protocol/client
option transport-type tcp
option remote-host 192.168.0.4 # IP address of the remote brick
option remote-subvolume log-brick # name of the remote volume
end-volume
### This is a distributed volume
volume log-distribute
type cluster/distribute
subvolumes log-remote-hip log-remote-hop
end-volume
### Add writeback feature
volume log-writeback
type performance/write-behind
option block-size 512KB
option cache-size 100MB
option flush-behind off
subvolumes log-distribute
end-volume
So the only difference is that the quota moved from the top on the
client to the bottom on each server. This works but df returns the wrong
amount (it returns the total available space, not the space available
with the given quota).
Regards,
Patrick
> Hi Patrick,
> It would be great if you could provide us with a bit more information.
> Could you mail us the specfiles used (both with and without quota) and
> also the gdb backtrace? Also, if there are any special steps we need
> to follow to reproduce the issue, please do let us know.
> Regards,
> Ananth
>
> -----Original Message-----
> *From*: Patrick Ruckstuhl <patrick at tario.org
> <mailto:Patrick%20Ruckstuhl%20%3cpatrick at tario.org%3e>>
> *To*: gluster-users at gluster.org <mailto:gluster-users at gluster.org>
> *Subject*: [Gluster-users] Quota translator troubles
> *Date*: Sun, 25 Jan 2009 17:21:46 +0100
>
> i,
>
> I tried to add the quota translator on top of everything else (basically
> I'd like to restrict the size of a distributed volume).
>
> This did not seem to work as I got the following error as soon as I
> added the quota translator, removing fixed the problem.
>
>
>
> 2009-01-25 16:17:37 E [dht-common.c:1346:dht_getxattr] log-distribute:
> invalid argument: loc->inode
> 2009-01-25 16:17:39 W [dht-layout.c:456:dht_layout_normalize]
> log-distribute: directory / looked up first time
> 2009-01-25 16:17:39 W [dht-common.c:137:dht_lookup_dir_cbk]
> log-distribute: fixing assignment on /
> pending frames:
> frame : type(1) op(UNLINK)
>
> patchset: glusterfs--mainline--3.0--patch-844
> signal received: 11
> configuration details:argp 1
> backtrace 1
> bdb->cursor->get 1
> db.h 1
> dlfcn 1
> fdatasync 1
> libpthread 1
> llistxattr 1
> setfsid 1
> spinlock 1
> epoll.h 1
> xattr.h 1
> st_atim.tv_nsec 1
> package-string: glusterfs 2.0.0rc1
> /lib/libc.so.6[0x7fdfa2391f60]
> /lib/libpthread.so.0(pthread_spin_lock+0x0)[0x7fdfa26be630]
> /lib/libglusterfs.so.0[0x7fdfa2adc6ac]
> /lib/libglusterfs.so.0(dict_get_ptr+0x33)[0x7fdfa2add4e3]
> /lib/glusterfs/2.0.0rc1/xlator/cluster/distribute.so(dht_layout_get+0x21)[0x7fdfa1f2fac1]
> /lib/glusterfs/2.0.0rc1/xlator/cluster/distribute.so(dht_subvol_get_hashed+0x4c)[0x7fdfa1f301ac]
> /lib/glusterfs/2.0.0rc1/xlator/cluster/distribute.so(dht_unlink+0x69)[0x7fdfa1f386e9]
> /lib/libglusterfs.so.0(default_unlink+0xa7)[0x7fdfa2ae6cf7]
> /lib/glusterfs/2.0.0rc1/xlator/features/quota.so(quota_unlink_stat_cbk+0xc1)[0x7fdfa1b1f721]
> /lib/glusterfs/2.0.0rc1/xlator/performance/write-behind.so(wb_stat_cbk+0x5c)[0x7fdfa1d2693c]
> /lib/glusterfs/2.0.0rc1/xlator/cluster/distribute.so(dht_attr_cbk+0xb0)[0x7fdfa1f395c0]
> /lib/glusterfs/2.0.0rc1/xlator/protocol/client.so(client_stat_cbk+0x14c)[0x7fdfa215965c]
> /lib/glusterfs/2.0.0rc1/xlator/protocol/client.so(protocol_client_pollin+0xc6)[0x7fdfa21498b6]
> /lib/glusterfs/2.0.0rc1/xlator/protocol/client.so(notify+0x128)[0x7fdfa214ff28]
> /lib/glusterfs/2.0.0rc1/transport/socket.so[0x7fdfa12e00fc]
> /lib/libglusterfs.so.0[0x7fdfa2af778f]
> /sbin/glusterfs(main+0x888)[0x403638]
> /lib/libc.so.6(__libc_start_main+0xe6)[0x7fdfa237e1a6]
> /sbin/glusterfs[0x402379]
>
>
>
>
> Adding the translator directly above the posix volume seems to somewhat
> work (df still shows the wrong available size but I'm not able to write
> more than the specified amount).
>
> Regards,
> Patrick
>
>
> _______________________________________________
> Gluster-users mailing list
> Gluster-users at gluster.org <mailto:Gluster-users at gluster.org>
> http://zresearch.com/cgi-bin/mailman/listinfo/gluster-users
>
>
More information about the Gluster-users
mailing list