RHCE第6章:nfs网络文件系统

系列文章目录

RHCE第0章:RHCE开始前的准备
RHCE第1章:Web服务器(上)
RHCE第1章:Web服务器(下)
RHCE第2章:DNS服务
RHCE第3章:DHCP服务器
RHCE第4章:Firewall服务
RHCE第5章:SELinux
RHCE第6章:nfs网络文件系统


前言

这次博客记录nfs文件系统,也可以理解为是一种服务,举个例子,在实际生产中,web服务和服务所产生的数据会分别存储在两台计算机中,因为数据远比服务重要,假设他们两个存储在同一台计算机中,一旦计算机崩溃,可能两个都丢了,如果分开存储,web服务崩溃重装就可以,可以将数据保全,但是这样需要两台服务器的文件共享,这就是nfs服务。
再说一个例子,百度可能很多的web服务器,如果每个服务器都存一份数据,冗余相当高,而且可能数据不一致,所以只需要多个服务器读取同一份数据文件即可。

这里给大家放一些概念性的东西,方便下面做实验。
NFS(Network Files System),网络文件系统是1980年由SUN发展出来在UNIX&Linux系统间实现磁盘文件共享的一种方法。它是一种文件系统协议:支持应用程序在客户端通过网络存取位于服务器磁盘中的数据。NFS的基本原则是让不同的客户端及服务器通过一组RPCs共享相同的文件系统,它独立于操作系统,允许不同硬件及操作系统的系统共同进行文件的共享。

虽然NFS可以在网络中进行文件共享,但NFS在设计时并没有提供数据传输的功能。需要借助RPC(Remote Procedure Calls,远程过程调用)。RPC定义了一种进程间通过网络进行交互通信的机制,它允许客户端进程通过网络向远程服务进程请求服务,而不需要了解服务器底层的通信协议详细信息。
RPC和NFS的关系:NFS是一个文件系统,而RPC是负责负责信息的传输。

当一个RPC连接建立开始阶段,客户端建立过程调用,将调用参数发送到远程服务器进程,并等待相应。请求到达时,服务器通过客户端请求的服务,调用指定的程序。并将结果返回客户端。当RPC调用结束,客户端程序将继续进行下一步的通信操作。
rpcinfo -p 192.168.100.1 #每次重启nfs服务,端口会随机变化

NFS依赖RPC与外部通信,为保证NFS服务正常工作,其需要在RPC注册相应的服务端口信息,这样客户端向服务器的RPC提交访问某个服务的请求时,服务器才能够正确作出相应。
注册NFS服务时,需要先开启RPC,才能保证NFS注册成功。并且如果RPC服务重新启动,其保存的信息将丢失,需重新启动NFS服务以注册端口信息,否则客户端将无法访问NFS服务器。

nfs-utils 包括基本的NFS命令与监控程序
rpcbind 支持安全NFS RPC服务的连接

NFS系统守护进程
nfsd:它是基本的NFS守护进程,主要功能是管理客户端是否能够登录服务器;
mountd:它是RPC安装守护进程,主要功能是管理NFS的文件系统。当客户端顺利通过nfsd登录NFS服务器后,在使用NFS服务所提供的文件前,还必须通过文件使用权限的验证。它会读取NFS的配置文件/etc/exports来对比客户端权限。
rpcbind:主要功能是进行端口映射工作。当客户端尝试连接并使用RPC服务器提供的服务(如NFS服务)时,rpcbind会将所管理的与服务对应的端口提供给客户端,从而使客户可以通过该端口向服务器请求服务。

客户端常用的指定方式
指定ip地址的主机:192.168.0.200
指定子网中的所有主机:192.168.0.0/24 192.168.0.0/255.255.255.0
指定域名的主机:nfs.cnhzz.com
指定域中的所有主机:.cnhzz.com
所有主机:

选项:
选项用来设置输出目录的访问权限、用户映射等。
NFS主要有3类选项:
访问权限选项
设置输出目录只读:ro
设置输出目录读写:rw
用户映射选项
all_squash:将远程访问的所有普通用户及所属组都映射为匿名用户或用户组(nfsnobody);
no_all_squash:与all_squash取反(默认设置);
root_squash:将root用户及所属组都映射为匿名用户或用户组(默认设置);
no_root_squash:与rootsquash取反;
anonuid=xxx:将远程访问的所有用户都映射为匿名用户,并指定该用户为本地用户(UID=xxx);
anongid=xxx:将远程访问的所有用户组都映射为匿名用户组账户,并指定该匿名用户组账户为本地用户组账户(GID=xxx);
其它选项
secure:限制客户端只能从小于1024的tcp/ip端口连接nfs服务器(默认设置);
insecure:允许客户端从大于1024的tcp/ip端口连接服务器;
sync:将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性;
async:将数据先保存在内存缓冲区中,必要时才写入磁盘;
wdelay:检查是否有相关的写操作,如果有则将这些写操作一起执行,这样可以提高效率(默认设置);
no_wdelay:若有写操作则立即执行,应与sync配合使用;
subtree:若输出目录是一个子目录,则nfs服务器将检查其父目录的权限(默认设置);
no_subtree:即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率;


一、共享文件

1.建立共享文件

我现在在根目录下建立两个文件用作分享,并且随便写点文件,操作不解释。
在这里插入图片描述

2.安装服务

这个nfs需要安装两个包,但这两个包都是默认安装的,这里说一下就行。
在这里插入图片描述

3.防火墙添加服务

前边说过,防火墙要开着做以后的实验。
这里需要添加三个服务,每个服务的作用前边概念里都有,不解释了。

firewall-cmd --permanent --add-service=nfs
firewall-cmd --permanent --add-service=rpc-bind 
firewall-cmd --permanent --add-service=mountd 
firewall-cmd --reload 

在这里插入图片描述

4.编写exports

在这里插入图片描述

/share1 *(rw,no_root_squash,sync,no_wdelay)
共享share1 给所有连接过来的计算机 可读可写 不压制root,写操作立即执行,不等待。
重启服务。

systemctl restart nfs-server

5.其他虚拟机挂载访问

这条命令可以查看改IP所共享的文件夹

showmount -e 192.168.100.1

在这里插入图片描述
建立挂载点,然后挂载。

mkdir /mnt/nfs1
mount 192.168.100.1:/share1 /mnt/nfs1/

在这里插入图片描述
可读可写
在这里插入图片描述

6.开机自动挂载

向/etc/fstable增加一行
在这里插入图片描述
然后reboot测试
在这里插入图片描述

二、使用时自动挂载

1.安装工具

这里是在chao2安装

yum install autofs

在这里插入图片描述

2.共享share2

/share2 192.168.100.0/24(ro)

在这里插入图片描述
重启服务,查看效果
在这里插入图片描述

3.编写配置文件

现在在chao2编写文件
先创建挂载点
在这里插入图片描述
编写配置文件,这里要编写两个文件。

 vim /etc/auto.master

在最后面加一行内容

/mnt/nfs2       /etc/auto.nfs2  --timeout=5

在这里插入图片描述

前边是挂载点,后边是挂载规则所在的路径,最后是超时限制,单位是秒,意思是5秒钟不使用自动断掉挂载。
编写第二个配置文件。

vim /etc/auto.nfs2

添加内容
在这里插入图片描述
重启服务
在这里插入图片描述
在这里插入图片描述
现在就自动挂载了,然后推出目录等待几秒,就会自动断开。
在这里插入图片描述


总结

这次的内容基本就这些,多说一点关机的时候建议先断掉连接在关机。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值