linux之nfs
之前一篇博客记录了Windows系统与Linux系统文件共享的最佳选择,此篇记录Linux系统与Linux系统之间文件共享的最佳选择----NFS
一、NFS 简介和架构图
NFS是Network File System的缩写,即网络文件系统。一种使用于分散式文件协定,功能是通过网络让不同的机器、不同的操作系统能够分享个人数据,让应用程序通过网络可以访问位于服务器磁盘中的数据。NFS在文件传送或信息传送的过过程中,依赖于RPC协议。RPC,远程过程调用(Remote Procedure Call),是使客户端能够执行其他系统中程序的一种机制。NFS本身是没有提供信息传输的协议和功能的,但NFS却能让我们通过网络进行资料的分享,就是因为NFS使用了RPC提供的传输协议,可以说NFS就是使用PRC的一个程序。
NFS服务端、RPC协议、客户端三者可以理解为房源、中介、租客之间的关系:
二、安装nfs
nfs服务端和客户端的安装命令一样
yum install cifs-utils -y
三、服务端配置文件
服务端配置文件是/etc/exports文件
vim /etc/exports 然后写入: /data/nfs_share 192.168.43.*(rw,sync,fsid=0)
# /data/nfs_share ,这个是本地要共享出去的目录。
# 192.168.43.* 允许访问的ip, 可以是一个主机192.168.227.0/24 ,可以是一个IP:192.168.227.4,也可以是一个IP段:192.168.227.0/24
#rw表示可读写,ro只读;
#sync,同步模式,内存中数据时时写入磁盘;async :不同步,把内存中数据定期写入磁盘中
#no_root_squash :加上这个选项后,root用户就会对共享的目录拥有至高的权限控制,就像是对本机的目录操作一样。不安全,不建议使用;root_squash:和上面的选项对应,root用户对共享目录的权限不高,
只有普通用户的权限,即限制了root;all_squash:不管使用NFS的用户是谁,他的身份都会被限定成为一个指定的普通用户身份
#anonuid/anongid :要和root_squash 以及all_squash一同使用,用于指定使用NFS的用户限定后的uid和gid,前提是本机的/etc/passwd中存在这个uid和gid
#fsid=0表示将/opt/nfs整个目录包装成根目录
四、服务端创建共享目录
mkdir -p /data/nfs-utils
五、服务端启动nfs服务
systemctl restart rpcbind systemctl enable rpcbind systemctl start nfs-utils systemctl enable nfs-utils
六、客户端创建挂载目录
mkdir -p /data/nfs_share
七、客户端挂载
客户端只需开启rpc就好
systemctl restart rpcbind
systemctl enable rpcbind
mount -t nfs 192.168.43.58/data/nfs_share /data/nfs_share
八、测试是否共享成功
在服务端/data/nfs_share下新建一个文件,然后在客户端/data/nfs_share下查看
九、开机自动挂载
在/etc/fstab写入挂载信息 vim /etc/fstab 在最后追加: 192.168.43.58:/data/nfs_share /data/nfs_share nfs defaults 0 0