linux下使用nfs远程目录挂载
NFS 是Network File System的缩写,中文意思是网络文件系统。
它的主要功能是通过网络(一般是局域网)让不同的主机系统之间可以共享文件或目录。
NFS客户端(一般为应用服务器,例如web)可以通过挂载(mount)的方式将NFS服务器端共享的数据目录挂载到NFS客户端本地系统中(就是某一个挂载点下)。从客户端本地看,NFS服务器端共享的目录就好像是客户端自己的磁盘分区或者目录一样,而实际上却是远端的NFS服务器的目录。
环境
以下为centos7环境下的流程,假定有两台服务器:
192.168.1.1 挂载盘原主机-服务端
192.168.1.2 需求挂载目标盘的客户端主机
一、服务端
1、检查nfs服务
rpm -qa|grep nfs
rpm -qa|grep rpcbind
2、安装nfs
yum -y install nfs-utils rpcbind
3、设置开机自动启动服务
chkconfig nfs on
chkconfig rpcbind on
4、启动服务
service rpcbind start
service nfs start
5、创建共享目录
mkdir /data/nfs-share
chmod -R 777 /data/nfs-share
6、配置exports文件
打开exports配置文件
vi /etc/exports
在其中加入客户端主机权限:
/data/nfs-share 192.168.1.2(rw)
7、刷新配置立即生效
exportfs -a
8、查看mount目录
此时可用showmount -e 服务端ip来查看可挂载目录
showmount -e 192.168.1.1
二、客户端
1、创建共享目录
mkdir /data/share-file
2、挂载目标目录
此处命令为 mount <服务端ip>:<服务端文件夹> <客户端文件夹>
mount 192.168.1.1:/data/nfs-share /data/share-file
若挂载失败,错误提示如下:
mount: wrong fs type, bad option, bad superblock on 192.168.1.1:/xxx/xxx,
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
dmesg | tail or so
安装 nfs-utils 即可
yum -y install nfs-utils rpcbind
3、卸载已挂载目录
umount /data/share-file
4、NFS挂载时出现"access denied by server while mounting"的解决方法
1、使用了非法端口,也就是使用了大于1024的端口。
这个错误,可以通过查看日志确认:
[root@local~ /]# cat /var/log/messages | grep mount
Jan 2 12:49:04 localhost mountd[1644]: refused mount request from 192.168.1.1 for /data/nfs-share/ (/data/nfs-share): illegal port 1689
解决办法:
修改配置文件/etc/exports,加入 insecure 选项,重启nfs服务,再尝试挂载。
/data/nfs-share/ *(insecure,rw,async,no_root_squash)
2、NFS版本问题
编辑/etc/sysconfig/nfs文件,找到下面:
#Turn off v2 and v3 protocol support
#RPCNFSDARGS="-N 2 -N 3"
#Turn off v4 protocol support
#RPCNFSDARGS="-N 4" /*把这句前面的#号去掉*/
最后保存,重启nfs服务,再尝试挂载;
如果挂载不上,可尝试在后面加-o nolock
参数。
3、查看客户端挂载的目录是否具备读写权限,添加相应权限即可。
4、nfs服务器上的/etc/hosts中设置了客户端机器IP对应域名,去掉即可。
注:如果需要设置开机挂载,在/etc/fstab添加一行配置即可:
192.168.1.1:/data/nfs-share /data/share-file nfs rw,tcp,intr 0 1
然后服务端和客户端都要用enable设置nfs和rpcbind服务开机启动,然后才可以正常挂载