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等选项

posted @ 2022-06-19 22:49  BlackData  阅读(1587)  评论(0编辑  收藏  举报