在分享NFS技术点时先分享几个正则表达式的技术:(针对在linux系统中三剑客用的比较多 awk sed grep,很适合它们)
^: 以…..开头。
$ : 以……结尾。
.(点号) :代表任意一个字符,有且只有一个。
\ : 转译符,具备有特殊意义的字符还原本来的意思。
*:重复前面的字符0次或多次。 和通配符是有区别哦!
\{n,m\}:重复前面的字符n到m次。
[^t] : 不含t的
^[^t] :以不是t的开头。
下面我要分享下NFS网络文件共享系统:
这个NFS网络共享服务是中小企业最用的。因为nfs一直是通过网络提供文件系统服务的有竞争力的选择,特别是中小型企业,应用广泛,比较稳定,不容易丢数据。大公司还会使用MFS之类的。
NFS介绍:(记住它属于软件,不像硬件存储厂商netapp之类的。)
什么是NFS?NFS是Network File System 的缩写,它的主要功能是通过网络让不同的主机系统之间可以彼此共享文件和目录。NFS客户端(一般为应用服务器,如WEB)可以通过挂载(Mount)的方式将NFS服务器共享的数据文件目录挂载到NFS客户端本地系统中(就是某一个挂载点下),从NFS客户端的机器本地上看,NFS服务器端共享的目录就好像是客户端自己的磁盘分区或者目录一样,而实际上却是远端的服务器目录!
nfs网络文件系统的使用很像windows server系统的网络共享、也和linux里的samba服务类似。
??NFS应用场景一般在企业服务器集群下的存后面的存储。(比较重要的),如果没有共享存储的话,在集群下存放一个数据,别人是无法定位数据在哪儿的。
既然NFS是通过网络传输数据,那么必定会有端口!
NFS传输端口不是固定端口,而造成不是固定端口的原因在于NFS支持的功能相当多,而不同的功能都会使用不通的程序来启动,没启动一个功能就会启用一些端口来传输数据。因此。NFS的功能所对应的端口才无法固定,是随机的。
那么客户端是怎么知道NFS服务器端哪个端口提供数据传输呢?
为了解决这个问题,NFS采用通过RPC(中文意思远程过程调用 Remote Procedere Call)协议/服务来实现的。
我们可以将RPC理解为“中间人”的意思。RPC服务的应用在门户级网站是很广泛的,例如百度、淘宝。
RPC服务的主要作用:可以理解为中介,其最主要的功能就是记录每个NFS功能所对应的端口号,并且在NFS客户端请求改端口和功能对应的信息传递给请求数据的NFS客户端,从而可以确保客户端可以连接。
RPC的工作原理:
说以开启NFS服务,先开启RPC服务,centos6 下做rpcbind,在启动nfs,然后NFS会向rpc服务注册启动的端口。然后客户请求NFS服务,RPC服务向客户端返回端口。最后客户端和NFS之间传输数据。
他们是通过TCP/IP协议栈来传输数据。
接下来做一些实验来验证理论:
在模拟环境下需要两台服务器:我先启用两台centos6.5系统。
centos 6.5-1作为NFS服务器端,centos6.5-2作为客户端。
首先,两个服务器之间通讯一定要正常:ICMP报文测试双方正常。
如果你ping不通外网的话,一定要看看你的网关对不对:
那么,如何更改网关呢?
先删除错误的网关:
要明白NFS服务,需要安装下面的软件包:
nfs-utils : 这个是NFS服务的主程序(包含rpc nfsd rpc.mountd 以及两个daemons和相关文档说明及执行命令文件等)
rpcbind:NFS可以被视为一个RPC程序,在启动任何一个RPC程序之前,需要做好端口和功能的对应映射工作,而这个映射工作就是有rpcbind服务来完成的。因此在提供NFS服务之前,必须先启动rpcbind服务。
我在centos-6.5-1的NFS服务器端查看NFS服务有没有安装过:是没有的
我先用yum 来查看下包组的列表:
先改回英文,省的一会安装报错:
我先把这用Group list查出来的包组NFS文件服务名称给复制下来。
安装NFS服务有很多种办法:
我这里用包组的安装:用yum groupinstall 覆盖安装:
再来看下安装下来的一些组件吧:结果是有我们想要的rpcbind 的服务
安装完后我们用rpm -aq来检查下所需要的组件都正确下载下来没:
同样,我在NFS客户端 192.168.8.189上来用rpm 检查下安装好没:
安装好NFS组件之后,服务器端是重点,所以我回到服务端。
在服务端先启用rpc服务:
默认情况下是关闭:
所以这里我先启用RPC服务:
然后呢,我们用ps 查看进程来看下rpc服务是否正常:有显示就表示启动起来
还可以查看状态:
我可以用以下命令查看rpc有没有NFS服务所对应的端口:RPC对外要用111端口,现在是没有nfs服务的数据所对应的端口!
如果在实际生产环境中看到如下提示:
紧接着,我将NFS服务启动:
当NFS服务启动之后,我再来看看rpc下所对应的NFS数据端口:跟之前是不是不一样呢?
因为NFS提供的功能很多,所以会有不同的端口出现。
最后别忘记了,将nfs 和 rpcbind 设置成开机自启动并检查下:
时间关系,下次在详细分享NFS实验。