NFS网络共享服务

一:NFS

二:NFS的优点

(1):原则上解决了本地磁盘容量有限的问题,我们可以通过网络方式对其他服务器的目录进行挂载,这就导致数据实际上是和其他服务器建立数据通道。也就是把数据保存在了其他服务器上,不会影响本地的磁盘容量。

(2):解决了数据的安全问题。因为数据没有保存在本地服务器上,即便本地服务器损坏,数据也仍然保存在其他服务器上。

(3):NFS是企业中必然会用到的产品之一(或者同类型产品)。我们统一将这类东西叫做存储服务器。

额外知识:数据的两种类型

(1):静态数据:图片,附件等文件格式的数据,是存放在储存服务器里。例如NFS。静态数据不可变。

(2):动态数据:文字,文本等,是存放在MySQL里,可以通过数据库操作语句进行更改。动态数据可变。

三:NFS工作原理

安装NFS的服务端,需要安装两个包:nfs-utils 和 rpcbind 。

客户端只需要安装工一个:nfs-utils

数据连接都是TCP三次握手建立数据通道。但是发起三次握手,需要知道目标服务的端口号。

NFS可以有多个客户端,每个客户端都和NFS建立了数据通道(相互独立)。客户端发起连接NFS时,每个客户端的目标端口号是不同的。

问:那么客户端是如何知道服务端提供服务的端口号呢?

答:RPC服务和NFS服务都是安装在服务端的。当启动NFS服务时,它会将提供挂载服务的所有的端口号注册到RPC服务。所以RPC服务就知道了端口号。当客户端发起挂载的时候,会先去找服务器的rpcbind。(RPC是一个守护进程,监听111端口)通过rpcbind分配给客户端用于挂载的端口号,然后发起TCP三次握手。

下面我们进行装包:

服务端:yum -y install nfs-utils  rpcbind

客户端:yum -y install nfs-utils

注意:启动时,一定先启动rpc服务。因为NFS启动时,是要进行注册的(在rpc服务里)。

启动rpc服务:/etc/init.d/rpc start

手动修改NFS的配置文件vim /etc/exports

/bate  192.168.200.0/24(rw,sync):可读可写,实时同步。

重启nfs服务 /etc/init.d/nfs restart

给共享目录更改属主属组为nfsnobody(默认的nfs的程序用户)

id nfsnobody

chown -R nfsnobody.nfsnobody /data

ll -d /data

查看本地的挂载信息:showmount -e localhost

主机IP下的/data 挂载到本地的/tmp下:mount 192.168.200.142:/data /tmp

df -hT 

本地共享结果:

远程挂载:

查看这台机器是否有共享目录:showmount -e 192.168.200.142

挂载到当前/tmp:mount 192.168.200.142:/data /tmp

df -hT

直接在共享目录里创建的文件,该文件的权限就是超户: