NFS存储服务器搭建

醉酒当歌 提交于 2020-02-29 10:38:53

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:强制进行卸载操作
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!