我正在尝试使用Linux for Oracle Linux(OLE)6.1(Red Hat RHEL 6.1兼容克隆)的ZFS。 我为Oracle Unbreakable Kernel成功编译并安装了spl和zfs 。 Zfs正在工作,我创build了镜像
zpool create -f -o ashift=12 tank mirror sdb sdc
现在我试图分享我的zfs池,如zfsonlinux站点上提到的“tank / nfs”。
zfs set sharenfs=on tank/nfs
所以我创build了tank / nfs并设置了nfs 。
现在我试图在本地主机上挂载nfs共享来testing它
mount -t nfs4 127.0.0.1:/tank/nfs /mnt
但是我得到mount.nfs4: mount system call failed
所以问题是:
如何在OLE上正确共享NFS文件夹或iSCSI卷,并通过Linux上的ZFS与Linux客户端进行挂载。
答案是mount 127.0.0.1:/tank/nfs /mnt
你的nfs服务器configuration肯定有问题。
请按照以下步骤设置RHEL 6作为nfs服务器。
为了build立NFS挂载,您需要在尝试挂载之前运行portmap服务。
运行/sbin/service portmap start试你的NFS挂载。
对于RHEL6和更新版本,这是在rpcbind – /sbin/service rpcbind start
根据我在FreeBSD和Debian GNU / kFreeBSD上使用ZFS的经验,我发现sharenfs特性没有很好的实现。 你可以在/ etc / exports中设置你的NFS输出。
您要导出的每个ZFS文件系统都需要自己的导出行。 我们发现数百个文件系统的速度太慢了。 您也应该尝试使用单个文件系统,就像使用传统文件系统一样。
您将不得不编辑/ etc / exports文件以在Linux中启用NFS。 在Linux中使用NFSv4时,每个导出的文件系统必须安装在一个名为NFSv4伪文件系统的目录下。 在这种情况下,这将是/坦克。 伪文件系统下的挂载点可以用不同的访问控制方法和导出选项导出。 任何安装在psuedofilesystem下的文件系统都必须在/ etc / exports中有自己的出口行。
/ etc / exports中:
/tank *(fsid=0) /tank/nfs *(rw,sync)
要更改/ etc / exports生效,您应该运行exportfs -r 。
对于NFSv4,您需要在客户端和服务器上都运行idmapd,以方便从用户名到用户ID号的映射。
在Linux NFSv4中,导出与NFSv3及更低版本不同。 假定pseudofilesystem是/ tank,你的mount命令是:
mount -t nfs -o vers=4 server:/nfs /mnt
对于NFSv3,它将是:
mount -t nfs -o vers=3 server:/tank/nfs /mnt
考虑在Solaris或SolE 11或OpenIndiana上原生地执行ZFS。 在我看来,Linux上的ZFS没有任何forms可以用于生产。 带有NFS的ZFS在基于Solaris的操作系统上具有本地集成,但在Linux上则不然。