一、NFS简介:
NFS是Network File System的缩写,即网络文件系统。一种使用于分散式文件协定,有SUN公司开发。功能是通过网络让不同的机器、不同的操作系统能够分享个人数据,让应用程序通过网络可以访问位于服务器磁盘中的数据。
NFS在文件传送或信息传送的过过程中,依赖于RPC协议。RPC,远程过程调用(Remote Procedure Call),是使客户端能够执行其他系统中程序的一种机制。NFS本身是没有提供信息传输的协议和功能的,但NFS却能让我们通过网络进行资料的分享,就是因为NFS使用了RPC提供的传输协议,可以说NFS就是使用PRC的一个程序。
为了共享和加载NFS文件系统,下面的服务要一起工作:
* nfs - 启动相应RPC服务进程来服务对于NFS文件系统的请求.
* nfslock - 一个可选的服务,用于启动相应的RPC进程,允许NFS客户端在服务器上对文件加锁.
* portmap - Linux的RPC服务,它响应RPC服务的请求和与请求的RPC服务建立连接.
二、安装NFS服务:
检查是否安装: rpm -qa nfs-utils rpcbind
安装 yum -install -y rpcbind
yum install -y nfs-utils
三、编辑配置文件:
NFS默认配置文件路径是:/etc/exports,文件默认是空的。
/etc/exports配置文件的格式是:
NFS共享的目录 NFS客户端地址(参数1,参数2,参数3 .........)
例如:/srv/nfs 192.168.1.0/24 (rw,sync)
rw:read-write,可读写;
ro:read-only,只读;
sync:代表数据同步写入NFS服务器端的硬盘中;
async:文件暂存于内存(是先写到缓存区,再写到磁盘里),而不是直接写入内存;
no_root_squash:NFS客户端连接服务端时如果使用的是root的话,那么对服务端分享的目录来说,也拥有root权限。显然开启这项是不安全的。
root_squash:NFS客户端连接服务端时如果使用的是root的话,那么对服务端分享的目录来说,拥有匿名用户权限,通常他将使用nobody或nfsnobody身份;
all_squash:不论NFS客户端连接服务端时使用什么用户,对服务端分享的目录来说都是拥有匿名用户权限;
anonuid:匿名用户的UID值,可以在此处自行设定。
anongid:匿名用户的GID值。
四、 启动NFS服务
systemctl restart nfs 或 service restart nfs
systemctl restart rpmbind 或 service restart rpmbind
systemctl stop firewalld (关闭防火墙)
rpcinfo -p 192.168.1.59 #查看NFS服务向rpc注册的端口信息,主端口号是:111;
五、配置开机是否自启动
chkconfig nfs on
chkconfig rpcbind on
六、验证NFS服务端
showmount -e 192.168.1.59
显示如下就表示正确:
Export list for 192.168.1.59:
/srv/nfs 192.168.1.0/24
七、挂载,文件共享
mount -t nfs 192.168.1.59 :/srv/ /mnt
八、查看是否挂载成功了
df -h
显示如下就表示正确:
192.168.1.59 :/srv/ 8.8G 1.5G 7.0G 18% /mnt