GlusterFS Root

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I'm trying to add GlusterFS support to the Open Shared Root project, and I'm hitting a problem that is a bit difficult to debug. GlusterFS works fine in the normal full-fat environment (RHEL5), but I can't seem to get it to mount the volume in the init-root environment.

Things I have checked so far:

All the libraries and dependencies that glusterfs package lists are included in the initroot:

# rpm -q --requires glusterfs
/bin/sh
/bin/sh
config(glusterfs) = 1.3.12-1
libc.so.6()(64bit)
libc.so.6(GLIBC_2.2.5)(64bit)
libc.so.6(GLIBC_2.3)(64bit)
libc.so.6(GLIBC_2.3.2)(64bit)
libc.so.6(GLIBC_2.3.3)(64bit)
libdl.so.2()(64bit)
libdl.so.2(GLIBC_2.2.5)(64bit)
libfuse.so.2()(64bit)
libfuse.so.2(FUSE_2.4)(64bit)
libfuse.so.2(FUSE_2.5)(64bit)
libfuse.so.2(FUSE_2.6)(64bit)
libglusterfs.so.0()(64bit)
libibverbs.so.1()(64bit)
libibverbs.so.1(IBVERBS_1.0)(64bit)
libibverbs.so.1(IBVERBS_1.1)(64bit)
libpthread.so.0()(64bit)
libpthread.so.0(GLIBC_2.2.5)(64bit)
libpthread.so.0(GLIBC_2.3.2)(64bit)
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rtld(GNU_HASH)

The fuse driver is loaded and the device node is there:
# ls -la dev/fuse
crw------- 1 root root 10, 229 Nov 22 22:59 dev/fuse

There are no errors reported on the console.

Here is what the debug level log reports:
# cat glusterfs.log
2008-11-23 01:34:16 D [glusterfs.c:167:get_spec_fp] glusterfs: loading spec from /etc/glusterfs/root.vol
2008-11-23 01:34:16 D [spec.y:107:new_section] parser: New node for 'root2'
2008-11-23 01:34:16 D [xlator.c:115:xlator_set_type] xlator: attempt to load file /usr/lib64/glusterfs/1.3.12/xlator/protocol/client.so 2008-11-23 01:34:16 D [spec.y:127:section_type] parser: Type:root2:protocol/client 2008-11-23 01:34:16 D [spec.y:141:section_option] parser: Option:root2:transport-type:tcp/client 2008-11-23 01:34:16 D [spec.y:141:section_option] parser: Option:root2:remote-host:192.168.10.2 2008-11-23 01:34:16 D [spec.y:141:section_option] parser: Option:root2:remote-subvolume:root2
2008-11-23 01:34:16 D [spec.y:209:section_end] parser: end:root2
2008-11-23 01:34:16 D [spec.y:107:new_section] parser: New node for 'root-store' 2008-11-23 01:34:16 D [xlator.c:115:xlator_set_type] xlator: attempt to load file /usr/lib64/glusterfs/1.3.12/xlator/storage/posix.so 2008-11-23 01:34:16 D [spec.y:127:section_type] parser: Type:root-store:storage/posix 2008-11-23 01:34:16 D [spec.y:141:section_option] parser: Option:root-store:directory:/mnt/tmproot/gluster/root
2008-11-23 01:34:16 D [spec.y:209:section_end] parser: end:root-store
2008-11-23 01:34:16 D [spec.y:107:new_section] parser: New node for 'root1'
2008-11-23 01:34:16 D [xlator.c:115:xlator_set_type] xlator: attempt to load file /usr/lib64/glusterfs/1.3.12/xlator/features/posix-locks.so 2008-11-23 01:34:16 D [xlator.c:145:xlator_set_type] xlator: dlsym(notify) on /usr/lib64/glusterfs/1.3.12/xlator/features/posix-locks.so: undefined symbol: notify -- neglecting 2008-11-23 01:34:16 D [spec.y:127:section_type] parser: Type:root1:features/posix-locks 2008-11-23 01:34:16 D [spec.y:196:section_sub] parser: child:root1->root-store
2008-11-23 01:34:16 D [spec.y:209:section_end] parser: end:root1
2008-11-23 01:34:16 D [spec.y:107:new_section] parser: New node for 'server'
2008-11-23 01:34:16 D [xlator.c:115:xlator_set_type] xlator: attempt to load file /usr/lib64/glusterfs/1.3.12/xlator/protocol/server.so 2008-11-23 01:34:16 D [spec.y:127:section_type] parser: Type:server:protocol/server 2008-11-23 01:34:16 D [spec.y:141:section_option] parser: Option:server:transport-type:tcp/server
2008-11-23 01:34:16 D [spec.y:196:section_sub] parser: child:server->root1
2008-11-23 01:34:16 D [spec.y:141:section_option] parser: Option:server:auth.ip.root1.allow:127.0.0.1,192.168.*
2008-11-23 01:34:16 D [spec.y:209:section_end] parser: end:server
2008-11-23 01:34:16 D [spec.y:107:new_section] parser: New node for 'root'
2008-11-23 01:34:16 D [xlator.c:115:xlator_set_type] xlator: attempt to load file /usr/lib64/glusterfs/1.3.12/xlator/cluster/afr.so 2008-11-23 01:34:16 D [spec.y:127:section_type] parser: Type:root:cluster/afr
2008-11-23 01:34:16 D [spec.y:196:section_sub] parser: child:root->root1
2008-11-23 01:34:16 D [spec.y:196:section_sub] parser: child:root->root2
2008-11-23 01:34:16 D [spec.y:141:section_option] parser: Option:root:read-subvolume:root1
2008-11-23 01:34:16 D [spec.y:209:section_end] parser: end:root
2008-11-23 01:34:16 D [glusterfs.c:128:fuse_graph] glusterfs: setting option mount-point to /mnt/newroot 2008-11-23 01:34:16 D [xlator.c:115:xlator_set_type] xlator: attempt to load file /usr/lib64/glusterfs/1.3.12/xlator/mount/fuse.so 2008-11-23 01:34:16 E [fuse-bridge.c:2699:init] glusterfs-fuse: fuse_mount failed (Inappropriate ioctl for device)

2008-11-23 01:34:16 E [glusterfs.c:547:main] glusterfs: Initializing FUSE failed

And here is the root volume spec:
# cat /etc/glusterfs/root.vol
volume root2
        type protocol/client
        option transport-type tcp/client
        #option transport-type socket
        #option address-family inet
        option remote-host 192.168.10.2
        option remote-subvolume root2
end-volume

volume root-store
        type storage/posix
        option directory /mnt/tmproot/gluster/root
end-volume

volume root1
        type features/posix-locks
        subvolumes root-store
end-volume

volume server
        type protocol/server
        option transport-type tcp/server
        #option transport-type socket
        #option address-family inet
        subvolumes root1
        option auth.ip.root1.allow 127.0.0.1,192.168.*
        #option auth.addr.root1.allow 127.0.0.1,192.168.*
end-volume

volume root
        type cluster/afr
        subvolumes root1 root2
        option read-subvolume root1
end-volume

Any suggestions on where I should even begin to look for the cause of this problem? I tested it in single-user mode, and it seems to mount OK there, so it has that feel of a missing dependency to it, but I can't think of what it could be.

I can provide an image of the kernel/initrd I'm using which could be dropped into a virtual machine for testing, if it'd help (I'm testing it on a VM myself).

Many thanks.

Gordan




[Index of Archives]     [Gluster Users]     [Ceph Users]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux