一: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
直接在共享目录里创建的文件,该文件的权限就是超户: