NFS服务
大家好呀!这里是码农后端。今天来简单聊一聊NFS服务。NFS(Network FileSystem,网络文件系统),是一个比较轻量级的服务,如果想要搭建一个大容量的存储平台,那么使用NFS既简单又快速。
一、NFS服务概述
1、背景引入
为了提高用户的访问效率,现需要将原有web服务器上的静态资源文件分离出来,单独保存到一台文件服务器上。
1)搭建NFS服务器(用于静态资源的存储如图片、视频、附件)
2)使用mount指定对NFS服务器进行挂载,挂载到Web服务器中
2、环境准备
由模版机CentOS7.6(通过恢复到快照还原为系统初始状态)在关机情况下使用完整克隆,克隆出3台一模一样的机器,分别为Web、NFS和Backup。
编号 | 主机名称FQDN | IP地址 | 作用 |
---|---|---|---|
1 | web.itweb.cn | 10.1.1.11 | Web服务器 |
2 | nfs.itweb.cn | 10.1.1.12 | NFS服务器 |
3 | backup.itweb.cn | 10.1.1.13 | Backup服务器 |
FQDN(Fully Qualified Domain Name),是一种网络标识符,用于唯一地标识互联网上的主机。是一个包含主机名和域名的完整字符串。
1)设置主机名称
1 | # Web服务器 |
2)设置IP地址
1 | # 打开网卡文件 |
注:UUID必须是唯一的,所以要么删除,要么更改UUID的值(更改后3位)
设置完成后,重启网络使其生效
1 | systemctl restart network |
3台机器都分别做如上设置。需要更改的是IPADDR和UUID(改后3位)
3)关闭防火墙与SELinux
1 | # 关闭防火墙 |
4)配置YUM源
如果有网络,可不配置,如果无网络则需要配置YUM源。
1 | # 清除所有缓存 |
3、NFS概述
NFS(Network File System)网络文件系统,主要用于Linux系统上实现文件共享的一种协议,其客户端主要是Linux
没有用户认证机制,且数据在网络上传送的时候是明文传送,一般只能在局域网或内网环境中使用
支持多节点同时挂载及并发写入
企业应用:为集群中的web server提供后端存储(做静态资源服务器)
4、NFS组成
1)rpcbind : 负责NFS的数据传输,远程过程调用 tcp/udp协议,端口111
2)nfs-utils :控制共享哪些文件,权限管理
RPC(Remote Procedure Call Protocol),远程过程调用协议。是一种通过网络从远程计算机程序上请求服务,不需要了解底层网络技术的协议。
5、与NFS相关的软件包
1 | nfs-utils-1.2.3-26.el6.x86_64 nfs服务的一个脚本控制工具(服务端与客户端) |
6、安装NFS软件
1 | # 安装软件(系统默认已经安装好了) |
7、NFS的配置文件
1 | # 打开配置文件 |
注:anonuid和anongid参数和all_squash一起使用。all_squash表示不管是root还是其他普通用户从客户端所创建的文件在服务器端的拥有者和所属组都是nfsnobody;服务端为了对文件做相应管理,可以设置anonuid和anongid进而指定文件的拥有者和所属组
二、NFS服务搭建
1、搭建NFS服务器
1)安装软件
1 | yum install rpcbind nfs-utils -y |
2)创建一个共享目录,如/share
1 | mkdir /share |
2、编写NFS主配置文件
1 | # 打开配置文件 |
需要写,使用rw,否则ro;并发量小,选择sync,否则选async
3、启动相关的NFS服务
1 | systemctl start rpcbind |
4、搭建Web服务器
1 | # 安装软件 |
当Apache软件启动完毕后,会自动占用计算机的80端口。
80端口指向Web服务器的目录 => /var/www/html
所以项目源代码都可以直接存放于/var/www/html目录下
1 | echo "NFS实战演练" > /var/www/html/index.html |
浏览器中访问10.1.1.11,如下
5、在Web服务器中挂载NFS
1 | mkdir /var/www/html/media |
6、上传aws.mp4视频到NFS服务器的/share
1)使用MX上传aws.mp4到/share目录(NFS服务器)
2)在Web服务器中,ll /var/www/html/media
1 | # 显示/var/www/html/media目录下的文件和文件夹的详细信息 |
7、在html网页中调用aws.mp4文件
1 | # 新建index.html文件 |