linux下NFS的简单配置
有时候,单位会有一些闲置的服务器,性能不高,但是贵在存储空间较大,为了利用起来,可以通过nfs工具,将其作为一个共享存储来使用。
我们来配置一下nfs服务,大致分为服务端和客户端,其实服务端和客户端使用的工具包都是一样的,不同的是,服务端启动了nfs和rpcbind,而客户端只需要启动rpcbind服务就可以了。
首先,我们来配置服务端。前提是,yum源配置好,firewall关闭或放行111端口(nfs默认端口)。
1.服务端
yum install -y nfs-utils rpcbind
#启动服务
systemctl start nfs rpcbind
#加入开机启动
systemctl enable nfs rpcbind
安装完后,会生成配置文件:/etc/exports
vi /etc/exports #格式 #ip或者主机名:准备共享的目录 [允许访问的地址段或主机,地址段/24,主机掩码是32] (权限,多个权限用逗号隔开),此时是允许所有连接
#这里无需在开头写IP地址即IP:/目录,直接写目录即可,如果写IP地址,客户端挂载时会出现No such file or directory的错误 /soft *(rw,sync,all_squash) #rw 可读写,ro 只读,sync写入磁盘,all_squash,以匿名用户登录
# no_root_squash:登入 NFS 主机使用分享目录的使用者,如果是 root 的话,那么对于这个分享的目录来说,他就具有 root 的权限!这个项目『极不安全』,不建议使用!
# root_squash:在登入 NFS 主机使用分享之目录的使用者如果是 root 时,那么这个使用者的权限将被压缩成为匿名使用者,通常他的 UID 与 GID 都会变成 nobody 那个系统账号的身份。 #配置完重启服务 systemctl restart nfs #创建要共享的目录,设置属组和属主 mkdir /soft chown -R nfsnobody.nfsnobody /soft #在本机查看是否配置成功 showmount -e
2.客户端
安装
yum install -y nfs-utils rpcbind #启动服务 systemctl start rpcbind #加入开机启动 systemctl enable rpcbind
systemctl start nfs-utils
systemctl enable nfs-utils #查看服务端挂载配置 showmount -e 服务端IP
挂载(临时挂载,重启无效)
#centos7 挂载无需再指定-t 参数指定nfs 直接mount即可,客户端创建目的挂载点目录 mkdir /data mount 10.0.0.1:/soft /data #通过mount 命令查看已挂载设备
永久挂载,通过/etc/fstab来实现永久挂载
vi /etc/fstab #格式 10.0.0.1:/soft /mount_data nfs defaults,_netdev 0 0 mount -a #此时永久挂载成功,_netdev指的是只有当网络连接有效时才挂载,否则会出现网络不通,df卡死的情况 #当然也可以通过umount -lf 目录 来强制卸载
#注意挂载时,不要再IP地址前加/,否则会无法解析
此时挂载就完成了。win10上也可以挂载访问linux的nfs,有空测试一下,以上内容有错误的地方,请斧正!
碰到的问题:
1.服务器端设置共享目录时,无需加IP地址前缀,否则会报No such file or directory的错误
2.客户端yum安装nfs-utils,否则会报如下错误:
3.挂载时如果卡死,可以加上-vv参数,查看具体挂载过程和报错信息
mount -t nfs IP地址:/home/data/nfs /nfs -vv
4.access denied by server while mounting IP地址:/home/data/nfs错误:
在更改版本,增加insecure等重新挂载无效的情况下,可在挂载命令后加上-o nolock试试
mount -t nfs IP地址:/home/data/nfs /nfs -vv -o nolock
5.永久挂载
可以在/etc/fstab中defaults后加上nolock,_netdev等选项