Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I'm trying ZFS on Linux for Oracle Linux (OLE) 6.1 (Red Hat RHEL 6.1 compatible clone). I successfully compiled and installed spl and zfs on it for Oracle Unbreakable Kernel. Zfs is working and I created mirror by

zpool create -f -o ashift=12 tank mirror sdb sdc

Now I'm trying to share my zfs pool caled "tank/nfs" as mentioned at zfsonlinux site.

zfs set sharenfs=on tank/nfs

So I created tank/nfs and set nfs to on.

Now I'm trying to mount nfs share at local host to test it by

mount -t nfs4 127.0.0.1:/tank/nfs /mnt

But I get mount.nfs4: mount system call failed

So question is:

How to share NFS Folder or iSCSI Volumes at OLE rightly and mount it with Linux Client via ZFS on Linux.

the answer is mount 127.0.0.1:/tank/nfs /mnt

share|improve this question
    
Can you try this from a different client that the server? –  Jeff Strunk Nov 29 '11 at 17:31
add comment

4 Answers 4

up vote 1 down vote accepted

There must be something wrong with your nfs server configuration.

Please try following this howto for setting up RHEL 6 as an nfs server.

share|improve this answer
    
Thanks for the HOWTO. The right answer is: mount 127.0.0.1:/tank/nfs /mnt –  BBK Dec 13 '11 at 17:50
    
@BBK If you have solved your problem please either accept an answer or add your own and accept it. –  Zoredache Dec 24 '11 at 22:07
add comment

In order to establish an NFS mount, you need to have the portmap service running before attempting the mount.

Run /sbin/service portmap start and retry your NFS mount.

For RHEL6 and newer, this is in rpcbind - /sbin/service rpcbind start

share|improve this answer
    
portmap: unrecognized service. yum install portmap. Package rpcbind-0.2.0-8.el6.x86_64 already installed and latest version Nothing to do –  BBK Nov 24 '11 at 20:25
    
Oh, for RHEL6, try /sbin/service rpcbind start instead. –  ewwhite Nov 24 '11 at 20:28
    
rpcbind (pid 1692) is running... mount -t nfs4 127.0.0.1:/tank/nfs /mnt mount.nfs4: mount system call failed –  BBK Nov 24 '11 at 20:46
    
This is getting too chatty. Try an nfs mount instead of nfs4. Also check that you don't have anything blocking the nfs ports (see rpcinfo -p). Since you're using the ZFS on Linux add-on, I don't know if you need to exportfs -a or not. Either way, this is probably not the best idea if you plan to use for production, given the state of the project. –  ewwhite Nov 24 '11 at 21:03
1  
check, too, your hosts.allow and hosts.deny configurations –  warren Nov 29 '11 at 18:04
show 1 more comment

Consider doing ZFS natively on Solaris or SolE 11 or OpenIndiana. In my opinion ZFS on Linux is nowhere close to being in any shape, ready for production. ZFS with NFS have native integration on Solaris-based OS's, but not so on Linux.

share|improve this answer
add comment

In my experience with ZFS on FreeBSD and Debian GNU/kFreeBSD, I found that the sharenfs feature was not implemented well. You may set up your NFS exports in /etc/exports.

Each ZFS filesystem that you want to export needs its own export line. We found this to be too slow with hundreds of filesystems. You should also try using a single filesystem as though you were using a traditional filesystem.

NFS exports in Linux

You will have to edit the /etc/exports file to enable NFS in Linux. With NFSv4 in Linux, every exported filesystem must be mounted under a single directory called the NFSv4 pseudofilesystem. In this case, that would be /tank. Mountpoints under the pseudofilesystem can be exported with different access control methods and export options. Any filesystems mounted under the psuedofilesystem must get its own export line in /etc/exports.

/etc/exports:

/tank *(fsid=0)
/tank/nfs *(rw,sync)

To make changes to /etc/exports take effect, you should run exportfs -r.

For NFSv4 you will need to run idmapd on both the client and the server to facilitate mapping from username to user id number.

In Linux NFSv4, the export is different than with NFSv3 and lower. Given that the pseudofilesystem is /tank, your mount command would be:

mount -t nfs -o vers=4 server:/nfs /mnt

For NFSv3, it would be:

mount -t nfs -o vers=3 server:/tank/nfs /mnt
share|improve this answer
    
I need hostname in /etc/exports: /tank 127.0.0.1(fsid=0) /tank/nfs 127.0.0.1(rw,sync). But mount -t nfs -o vers=4 server:/nfs /mnt saying mount.nfs: mount system call failed. And mount -t nfs -o vers=3 127.0.0.1:/tank/nfs /mnt saying mount.nfs: requested NFS version or transport protocol is not supported –  BBK Dec 1 '11 at 17:53
    
Have you tried turning off iptables or explicitly allowing tcp port 2049 on localhost? I'm surprised that the default rules would block anything on localhost, but it is what Googling that error message suggests. –  Jeff Strunk Dec 1 '11 at 21:19
    
iptables turned off. –  BBK Dec 6 '11 at 16:47
    
mount -t nfs -o vers=3 127.0.0.1:/tank/nfs /mnt mount.nfs: requested NFS version or transport protocol is not supported. mount -t nfs -o vers=4 127.0.0.1:/nfs /mnt mount.nfs: mount system call failed –  BBK Dec 6 '11 at 16:52
    
/etc/exports: /tank 127.0.0.1(fsid=0) /tank/nfs 127.0.0.1(rw,sync) –  BBK Dec 6 '11 at 17:09
show 1 more comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.