2018-12-24 直播课笔记

NFS介绍

* NFS是Network File System的缩写;这个文件系统是基于网路层面,通过网络层面实现数据同步

* NFS最早由Sun公司开发,分2,3,4三个版本,2和3由Sun起草开发,4.0开始Netapp公司参与并主导开发,目前最新为4.1版本——>4.1版本是2010年出来还没更新过

* NFS数据传输基于RPC协议,RPC为Remote Procedure Call的简写,意思为 远程过程调用

    * 例子:

        * 服务端和客户端通信,A机器和B机器之间不能直接通信,需要借助RPC协议来实现

* NFS应用场景是:A,B,C三台机器上需要保证被访问到的文件是一样的,A共享数据出来,B和C分别去挂载A共享的数据目录,从而B和C访问到的数据和A上的一致

* NFS架构

c3abc56ab893c7f17134e13696998cfc06f.jpg

    * 例子:

        * 跑了一个网站,上面传输了很多图片,用户访问一个图片时,需要从A机器上去请求,但A机器负载高,为了分担负载,就多弄了两台机器,B机器C机器同时提供服务;正常的话,需要到A机器上才能拿到数据,但是B机器和C机器做了负载均衡,分担了相同的服务器,那么用户也有可能到B机器或者C机器上;那么用户请求到B机器上的时候,如何才能获取到A机器上的数据呢;要么把A机器的数据传输到B机器上,同时传输到C机器上,但是这个不能时时更新,(用户上传的数据是存放在A机器上,但用户请求的时候数据是请求到B机器上)这样A上的数据还没到B上面去,就会导致用户请求获取的数据访问不到,访问为空,为404;那么NFS服务就可以解决这个问题,将A机器的数据共享到B机器、C机器,通过NFS来实现。有NFS服务以后,上传到A机器上的数据,B机器或C机器上就能马上看到和调用

    * 总结,NFS就是实时同步

NFS原理图

* 服务端需要启动一个NFS服务,服务端要想给客户端提供服务,需要借助RPC协议,RPC协议是由rpcbind服务所实现的;在centos 5或者之前的版本叫portmap服务,centos6及之后的版本叫rpcbind服务,这两个都是一个服务,最终实现了RPC协议的通信,NFS服务默认不会监听任何端口(启动服务,但不会监听端口),最终监听端口,实现RPC通信的过程是由rpcbind服务产生的RPC协议实现的,RPC协议 默认监听 的 端口是111 端口;

* 整个流程为:服务端的NFS服务监听一个端口通过RPC协议监听的端口,再去告诉客户端RPC协议,然后NFS客户端通过本机的RPC端口回传数据信息到服务端NFS监听的端口,最终实现通信

445c0fd7967b8fcc3005e078d3a90a6c23f.jpg

* NFS服务需要借助RPC协议实现通信

 

NFS服务端安装配置目录概要

* yum install -y nfs-utils rpcbind

* vim /etc/exports //加入如下内容

8000836a595bf5932df3175e0e260c61167.jpg

* 保存配置文件后,执行如下准备操作

* mkdir /home/nfstestdir

* chmod 777 /home/nfstestdir

* systemctl start rpcbind

* systemctl start nfs

* systemctl enable rpcbind

* systemctl enable nfs

NFS服务端安装配置

1. 首先准备两台机器,我这里准备两台虚拟机,A机器IP分别为192.168.180.134,B机器IP为192.168.180.135

2. 将A机器作为服务端,并安装两个包,分别为 nfs-utils 和 rpcbind

* yum install -y nfs-utils rpcbind

42970aad453ba3a51ae73cb5f6206407c64.jpg

  • 将B机器作为客户端,安装 nfs-utils 包

  • 每次刚开机运行yum的时候都会很慢,因为需要重新生成一个缓存文件

  • 有时yum安装的时候很慢,我们可以先禁掉,进入到/etc/yum.repos.d/目录下,将目录下的epel.repo文件改个名字,重新安装即可

  • yum install -y nfs-utils

da95b39631fde9116106fe9d645be3f8cfb.jpg

* 在安装完成后,需要去A机器中 /etc/exports 编辑配置文件

* vim /etc/exports //加入如下内容

42970aad453ba3a51ae73cb5f6206407c64.jpg

1. 下面就可以启动服务了,启动服务前需要先创建目录,并设置权限

2. 在A机器上创建分享的目录 并设置成777的权限,这里设置777权限是为了方便接下里的实验

746fd163abb075e53551efb5e3a99fa0e7d.jpg

* 启动 rpcbind ,再启动前查看A机器上监听的端口,就会看到启动了systemd,这是centos7系统的一个特性——>111端口是rpcbind服务监听的

* 用ps可以查看服务已经启动,因为有这个服务,所以监听了111端口

c30b747fec597e785c750c0ce82207ad972.jpg

91062db6f83d709e775766dab30ac2542ab.jpg

NFS配置选项

* rw 读写

* ro 只读

* sync 同步模式,内存数据实时写入磁盘,相应的就会降低磁盘效率

* async 非同步模式,它会每隔一段时间才会将数据刷新到磁盘

    * 优势:能够保证磁盘的效率

    * 劣势:万一断电,就会有可能丢失一部门数据

* no_root_squash 客户端挂载NFS共享目录后,root用户不受约束,权限很大

    * NFS,要想在客户端上去使用服务端上共享的目录,需要去把它挂载到客户端上的一个挂载点,那就跟本地上的目录是一样的,在操作本地的目录时候,肯定会有一些权限设置,如果加上no_root_squash,这样root用户去共享目录下读写文件的时候,就不会受到限制(就相当于root用户在本地上读写)

* root_squash 与上面选项相对,客户端上的root用户收到约束,被限定成某个普通用户

* all_squash 客户端上所有用户(包括root用户)在使用NFS共享目录时都被限定为一个普通用户

* anonuid/anongid 和上面几个选项搭配使用,定义被限定用户的uid和gid

客户端上挂载

1. 首先在客户端B机器上安装了rpcbind,它是由nfs-utils 这个包自动安装的

2. 在B机器上安装完成后不需要启动任何服务

3. 在B机器上执行 showmount -e 命令

* showmount -e 192.168.180.134 //查看在NFS服务端是否有权限

    * 该ip为NFS服务端ip91062db6f83d709e775766dab30ac2542ab.jpg

5d62bfcd997f15f95bf1d548d793e56e987.jpg

 

 

81a718d9a3d3e6e7bbbbaec05ab0d9c4c09.jpg

 

 

340bc39d6259a9ee57e951e64534728cb26.jpg

985d60282637434522b90614454474c5b0b.jpg

985d60282637434522b90614454474c5b0b.jpg

66c3ae1fe7bca8cd4042cd5b47296c6028d.jpg

f4c7fb4c878c27468b44f250791d937ac2f.jpg

f38f13d5f60a5f712d6b2835affd0aef87e.jpg

41d5ec315d7b895458262e214dc023d90d2.jpg

55b7aaf91d4753b36ad0126a9023cd31b42.jpg

0d903db1dfa9c2605a4fba51624058e45d1.jpg

344c061e4f0910194c55b56f0d6a26889a9.jpg

2a11b7164596a9fdb3a777e501b4d3f6ab5.jpg

6ece716c258c50e73765ebbae197839918c.jpg

eee8e64cf409cb8a4358e821af46755231b.jpg

eee8e64cf409cb8a4358e821af46755231b.jpg

ca75c99d46dbd40d4ff21b9ac83690e8bb1.jpg

转载于:https://my.oschina.net/u/3991860/blog/2993606

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值