NFS概念介绍:
NFS是Network File System的缩写,即网络文件共享系统;
主要功能:通过网络(一般是局域网)让不同主机系统之间可以共享文件或者目录
NFS存储服务的作用
1)实现数据的共享存储
2)编写数据操作管理
3)节省购买服务器磁盘开销 淘宝–上万台 用电开销
NFS服务部署流程
首先需要安装rpcbind这个软件。
yum -y install rpcbind
服务端部署:
第一个历程:下载安装软件
# 首先检查是否安装了nfs和rpc服务
rpm -qa | grep -E "nfs|rpc"
yum -y install nfs-utils rpcbind
第二个历程:编写nfs服务配置文件
vim /etc/exports
# 编写格式
01 02(03)
01:设置数据存储目录,需要在本地创建
02:设置网络的白名单{即允许那些主机可以连接到存储服务器进行数据存储}
03:设置存储目录的权限信息,存储目录的一些功能权限等
第三个历程:创建数据存储目录,修改权限
mkdir /data
# 修改权限(安装好了NFS服务之后,就会创建好nfsnobody用户)
chown nfsnobody.nfsnobody /data
第四个历程:启动服务
# 注意先启动rpc服务,再启动rpc服务
systemctl start rpcbind.service
systemctl enable rpcbind
systemctl start nfs
systemctl enable nfs
客户端部署
第一个历程:安装nfs-utils软件
yum -y install nfs-utils
第二个历程:实现远程挂载共享目录
# 服务端IP为nfs服务端的IP地址
# 将服务端的nfs共享目录挂载到本地的/mnt目录下
mount -t nfs 服务端IP:/data /mnt
# 如果挂载的时候出现报错:wrong fs type,是由于本地的机器没有安装nfs-utils软件,没办法识别出这种NFS这种类型的文件系统
yum -y install nfs-utils # 执行该命令即可
NFS服务工作原理
服务端:
1、启动rpc服务,开启111端口
2、启动nfs服务
3、实现nfs服务开放的端口和进程在rpc服务上进行注册记录
补充:查看rpc服务的详细信息:rpcinfo -p 【hostname】
客户端:
1、建立Tcp网络连接
2、客户端执行挂载命令,进行远程挂载
3、实现远程数据存储
NFS服务端详细配置说明
实现多个网段主机可以进行挂载
配置文件第一种写法:
/data 172.16.1.0/24(rw,sync) 10.0.0.0/24(rw,sync)
配置文件第二种写法:
/data 172.16.1.0/24(rw,sync)
/data 10.0.0.0/24(rw,sync)
总结:共享目录的权限和哪些因素有关
1、和存储目录的本身权限有关。(权限是否为755 属主是否是:nfsnobody)
2、和配置文件种的权限设置有关。(即括号中的权限设置)
3、和客户端挂载命令的参数有关。(可能是挂载时,只允许可读)
NFS配置参数权限:
rw -- 存储目录是否有读写权限
ro -- 存储目录是否有只读权限
sync -- 同步方式存储数据(存入硬盘中;优点:传输数据可靠,不易丢数据;缺点:数据传输速度慢)
async -- 异步方式存储数据(存如内存中:优点:数据传输速度快;缺点:数据传输不可靠,容易丢失数据)案例:商品秒杀活动使用
no_root_squash --- 不要将root用户身份进行转换
root_squash --- 将root用户身份进行转换
all_aquash --- 将所有用户的身份都进行转换
no_all_squash --- 不要将普通用户身份进行转换
如何实现自动挂载
01. 利用rc.local(开机自动读取该文件,用于某些需要开机自动开启的操作)
echo "mount -t nfs 172.16.1.31:/data /mnt" >> /etc/rc.local (记得备份文件)
02. 利用fstab文件
vim /etc/fstab
172.16.1.31:/data /mnt nfs defaults 0 0 (后面两个00,表示是否检查磁盘,是否进行备份)
注意:有的时候会出现编写好了fstab文件还是不会开机自动挂载,原因是没有系统开启了一个特殊的服务
centos6中有一个autofs服务,需要将这个服务开启之后,就可以实现开机自动挂载
*由于nfs是网络存储的方式,而网络服务没有开启之前是不能进行挂载的,而是先加载fstab文件,所以这个时候不能进行挂载
autofs服务程序:开启自动启动 服务效果:服务启动好之后,重新加载fstab,这个时候重新挂载nfs文件系统
客户端挂载操作,权限控制
客户端mount命令的参数:
rw ------- 实现挂载后挂载点目录可读可写(默认)
ro ------- 实现挂载后挂载点目录只可读
suid ------- 在共享目录中可以让setuid权限位生效(默认)
nosuid ------- 在共享目录中可以让setuid权限为失效
exec ------- 共享目录中的执行文件可以直接执行
noexec ------- 共享目录中的执行文件不可以直接执行
auto ------- 可以实现自动挂载(需要配合mount -a 命令进行自动挂载)
noauto ------- 不可以实现自动挂载
nouser ------- 禁止普通用户卸载已经挂载的挂载点
users ------- 允许普通用户卸载已经挂载的挂载点
客户端卸载 挂载
umount -lf /mnt
-l:不退出挂载点目录进行卸载
-f:强制进行卸载操作
来源:CSDN
作者:yang_x_b
链接:https://blog.csdn.net/yang_x_b/article/details/104546090