nfs

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nfs相关的知识,希望对你有一定的参考价值。

防火墙都是关闭的
服务端

[root@localhost ~]# yum -y install rpcbind nfs-utils

编辑/etc/exportsp配置文件配置共享目录(配置文件默认可能没有)
root@ubuntu:~# cat /etc/exports
#共享目录 允许访问的IP或网段(参数)
/nfs 192.168.6.0/24(rw,sync,no_root_squash

先启动rpcbind再启动nfs
[root@localhost ~]# systemctl start rpcbind 
[root@localhost ~]# systemctl start nfs-utils.service

用于配置NFS服务程序配置文件的参数:

参数1 作用 2
ro 只读
rw 读写
root_squash 当NFS客户端以root管理员访问时,映射为NFS服务器的匿名用户nfsnobody
no_root_squash 当NFS客户端以root管理员访问时,映射为NFS服务器的root管理员
all_squash 无论NFS客户端使用什么账户访问,均映射为NFS服务器的匿名用户nfsnobody
rsync 同时将数据写入到内存与硬盘中,保证不丢失数据
async 优先将数据保存到内存,然后再写入硬盘;这样效率更高,但可能会丢失数据

[root@NFS ~]# exportfs -r #重载配置文件
root@ubuntu:~# exportfs -rv
exportfs: /etc/exports [1]: Neither ‘subtree_check‘ or ‘no_subtree_check‘ specified for export "192.168.6.0/24:/nfs".
Assuming default behaviour (‘no_subtree_check‘).
NOTE: this default has changed since nfs-utils version 1.0.x

exportfs: /etc/exports [2]: Neither ‘subtree_check‘ or ‘no_subtree_check‘ specified for export "192.168.6.0/24:/nfs123".
Assuming default behaviour (‘no_subtree_check‘).
NOTE: this default has changed since nfs-utils version 1.0.x

exporting 192.168.6.0/24:/nfs123
exporting 192.168.6.0/24:/nfs

查看NFS服务是否向rpc注册端口信息,rpc端口号:111nfs主程序端口号:2049,客户端也可以执行此命令

root@ubuntu:~# rpcinfo -p 192.168.6.240
    100000    4   tcp    111  portmapper
    100000    3   tcp    111  portmapper
    100000    2   tcp    111  portmapper
    100000    4   udp    111  portmapper
    100000    3   udp    111  portmapper
    100000    2   udp    111  portmapper
    100005    1   udp  51536  mountd
    100005    1   tcp  38605  mountd
    100005    2   udp  36598  mountd
    100005    2   tcp  51885  mountd
    100005    3   udp  46768  mountd
    100005    3   tcp  43378  mountd
    100003    3   tcp   2049  nfs
    100003    4   tcp   2049  nfs
    100227    3   tcp   2049
    100003    3   udp   2049  nfs
    100003    4   udp   2049  nfs
    100227    3   udp   2049
    100021    1   udp  58186  nlockmgr
    100021    3   udp  58186  nlockmgr
    100021    4   udp  58186  nlockmgr
    100021    1   tcp  46484  nlockmgr
    100021    3   tcp  46484  nlockmgr
    100021    4   tcp  46484  nlockmgr

客户端
客户端也需要安装软件,但是不需要启动服务
[root@localhost ~]# yum -y install rpcbind nfs-utils
查看服务端共享的路径(服务端也可以执行此命令)
root@ubuntu:~# showmount -e 192.168.6.240
Export list for 192.168.6.240:
/nfs 192.168.6.0/24
挂载服务端目录到本地
root@ubuntu:~# mount 192.168.6.240:/nfs /root/shou
root@ubuntu:~# df -h |grep 192.168.6.240
192.168.6.240:/nfs 184G 5.4G 169G 4% /root/shou

排查错误:
示例1:卸载挂载设备时显示device is busy。
[root@nfs-client mnt]# umount /mnt
umount.nfs: /mnt: device is busy
umount.nfs: /mnt: device is busy
解答:有可能是当前目录就是挂载的NFS目录(/mnt),也有可能是NFS Server挂了。对于第一种情况,解决办法为退出挂载目录/mnt,再执行umount /mnt卸载。对于第二种情况,NFS Server挂了,NFS Client就会出现问题(df -h窗口会死掉),这时只能强制卸载,方法为:
umount -lf /mnt 其中的参数-f为强制卸载,参数-l为懒惰的卸载。

示例2:CentOS 6.6客户端NFS挂载时遇到问题。
[root@nfs-client ~]# mount -t nfs 172.16.1.9:/data /mnt
mount:wrong fs type,bad option,bad option,bad superblock on 10.0.0.7:/data,
missing codepage or helper program,or other error
(for several filesystems (e.g. nfs, cifs) you might
need a /sbin/mount.<type> helper program )
In some cases useful info is found in syslog - try
meg | tail or so
排查思路:同样的机器,NFS服务器本地可以挂载,但是客户端挂载时wrong fs type,因此尝试所有客户端安装nfs-utils。CentOS6.5及以前的NFS没有遇到这个问题。
解决方法:执行yum install nfs-utils -y,客户端安装NFS软件,但不启动服务。

以上是关于nfs的主要内容,如果未能解决你的问题,请参考以下文章

NFS错误代码-110的确切含义

如何在 C 代码中检查目录是不是在 NFS 文件系统上?

java保存nfs

NFS

rsync nfs 实时同步,结合实战

Linux NFS服务