一文带你快速理解什么是NFS?

大家好呀!这里是码农后端。今天来简单聊一聊NFS服务。NFS(Network FileSystem,网络文件存储系统),是一个比较轻量级的服务,如果想要搭建一个大容量的存储平台,那么使用NFS既简单又快速。

一、NFS服务概述

1、背景引入

为了提高用户的访问效率,现需要将原有web服务器上的静态资源文件分离出来,单独保存到一台文件服务器上。

534c6a23f5365a4f7030f78a7b968634.png

1)搭建NFS服务器(用于静态资源的存储如图片、视频、附件)

2)使用mount指定对NFS服务器进行挂载,挂载到Web服务器中

2、环境准备

由模版机CentOS7.6(通过恢复到快照还原为系统初始状态)在关机情况下使用完整克隆,克隆出3台一模一样的机器,分别为Web、NFS和Backup。

编号主机名称FQDNIP地址作用
1web.itweb.cn10.1.1.11Web服务器
2nfs.itweb.cn10.1.1.12NFS服务器
3backup.itweb.cn10.1.1.13Backup服务器

FQDN(Fully Qualified Domain Name),是一种网络标识符,用于唯一地标识互联网上的主机。是一个包含主机名和域名的完整字符串。

1)设置主机名称

# Web服务器
hostnamectl set-hostname web.itweb.cn
# NFS服务器
hostnamectl set-hostname nfs.itweb.cn
# 备份服务器
hostnamectl set-hostname backup.itweb.cn
# 切换生效
su

2)设置IP地址

# 打开网卡文件
vim /etc/sysconfig/network-scripts/ifcfg-ens33
# 编辑
BOOTPROTO=none
IPADDR=10.1.1.11
# 其余两台:10.1.1.12、10.1.1.13
NETMASK=255.255.255.0
GATEWAY=10.1.1.2
DNS1=119.29.29.29
DNS2=114.114.114.114

注:UUID必须是唯一的,所以要么删除,要么更改UUID的值(更改后3位)

e2153d27b2b6ccbdf0cc1d0d5849228b.png

设置完成后,重启网络使其生效

systemctl restart network

3818a9b9cf4063f8fe84b73f8a7703e7.png

3台机器都分别做如上设置。需要更改的是IPADDR和UUID(改后3位)

3)关闭防火墙与SELinux

# 关闭防火墙
systemctl stop firewalld
# 禁止开机启动
systemctl disable firewalld

# 关闭SELinux
setenforce 0

vim /etc/selinux/config
SELINUX=disabled

4)配置YUM源

如果有网络,可不配置,如果无网络则需要配置YUM源。

# 清除所有缓存
yum clean all
# 重新给本地仓库建立缓存
yum makecache

3、NFS概述

  • NFS(Network File System)网络文件系统,主要用于Linux系统上实现文件共享的一种协议,其客户端主要是Linux

  • 没有用户认证机制,且数据在网络上传送的时候是明文传送,一般只能在局域网内网环境中使用

  • 支持多节点同时挂载及并发写入

  • 企业应用:为集群中的web server提供后端存储(做静态资源服务器)

4、NFS组成

1)rpcbind :负责NFS的数据传输,远程过程调用  tcp/udp协议,端口111

2)nfs-utils :控制共享哪些文件,权限管理

9800ab75096aa164a01701cce89b53d7.jpeg

RPC(Remote Procedure Call Protocol),远程过程调用协议。是一种通过网络从远程计算机程序上请求服务,不需要了解底层网络技术的协议。

5、与NFS相关的软件包

nfs-utils-1.2.3-26.el6.x86_64 		nfs服务的一个脚本控制工具(服务端与客户端)
nfs4-acl-tools-0.3.3-6.el6.x86_64	acl 工具包
nfs-utils-lib-1.1.5-4.el6.x86_64  	nfs 库文件

6、安装NFS软件

# 安装软件(系统默认已经安装好了)
yum install rpcbind nfs-utils -y
# 查询软件
rpm -q rpcbind
rpm -aq|grep ^nfs

7、NFS的配置文件

# 打开配置文件
vim /etc/exports

#共享目录   共享选项
/share    *(ro,sync)
/public	  *(ro,sync)

#共享主机:
*   :代表所有主机
192.168.0.0/24:代表共享给某个网段192.168.0.1 ~ 192.168.0.254
192.168.0.0/24(rw) 192.168.1.0/24(ro) :代表共享给不同网段
192.168.0.254:共享给某个IP
*.itweb.cn:代表共享给某个域下的所有主机

#共享选项:
ro:只读
rw:读写
sync:实时同步,直接写入磁盘(安全性最高)
async:异步,先缓存数据在内存然后再同步磁盘(效率最高,但是有丢失文件风险)
anonuid:设置访问nfs服务的用户的uid,uid需要在/etc/passwd中存在
anongid:设置访问nfs服务的用户的gid
root_squash :默认选项 root用户创建的文件的属主和属组都变成nfsnobody,其他人nfs-server端是它自己,client端是nobody。(访问NFS服务器时,映射为匿名账号)
no_root_squash:root用户创建的文件属主和属组还是root,其他人server端是它自己uid,client端是nobody。(访问NFS服务器时,映射为root管理员账号)
all_squash:不管是root还是其他普通用户创建的文件的属主和属组都是nfsnobody

注:anonuid和anongid参数和all_squash一起使用。all_squash表示不管是root还是其他普通用户从客户端所创建的文件在服务器端的拥有者和所属组都是nfsnobody;服务端为了对文件做相应管理,可以设置anonuid和anongid进而指定文件的拥有者和所属组

二、NFS服务搭建

1、搭建NFS服务器

1)安装软件

yum install rpcbind nfs-utils -y

2)创建一个共享目录,如/share

mkdir /share

2、编写NFS主配置文件

# 打开配置文件
vim /etc/exports

#编辑如下
#共享目录   共享选项
/share    10.1.1.0/24(rw,sync)

需要写,使用rw,否则ro;并发量小,选择sync,否则选async

3、启动相关的NFS服务

systemctl start rpcbind
systemctl start nfs

ss -naltp |grep 111       111端口

abef262dcbe7696d4dd4022746ebe9e8.png

4、搭建Web服务器

# 安装软件
yum install httpd -y
# 启动httpd服务
systemctl start httpd

Apache软件启动完毕后,会自动占用计算机的80端口。

80端口指向Web服务器的目录 => /var/www/html

所以项目源代码都可以直接存放于/var/www/html目录下

echo "NFS实战演练" > /var/www/html/index.html

浏览器中访问10.1.1.11,如下

24e818861fa3625f379f89994d8c1364.jpeg

5、在Web服务器中挂载NFS

mkdir /var/www/html/media

# 挂载nfs
mount -t nfs 10.1.1.12:/share /var/www/html/media 
# 或
mount.nfs 10.1.1.12:/share /var/www/html/media

# 查询,显示文件系统的使用情况
df -h

Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   17G  5.1G   12G  30% /
devtmpfs                 894M     0  894M   0% /dev
tmpfs                    910M     0  910M   0% /dev/shm
tmpfs                    910M   11M  900M   2% /run
tmpfs                    910M     0  910M   0% /sys/fs/cgroup
/dev/sda1               1014M  179M  836M  18% /boot
tmpfs                    182M   28K  182M   1% /run/user/1000
/dev/sr0                 4.3G  4.3G     0 100% /run/media/itheima/CentOS 7 x86_64
tmpfs                    182M     0  182M   0% /run/user/0
10.1.1.12:/share          17G  5.1G   12G  30% /var/www/html/media

# 如果客户端没有安装nfs工具可能导致挂载失败:
yum -y install nfs-utils nfs-utils-lib nfs4-acl-tools

6、上传aws.mp4视频到NFS服务器的/share

1)使用MX上传aws.mp4到/share目录(NFS服务器)

2)在Web服务器中,ll /var/www/html/media

# 显示/var/www/html/media目录下的文件和文件夹的详细信息
ll /var/www/html/media

aws.mp4

7、在html网页中调用aws.mp4文件

# 新建index.html文件
vim /var/www/html/index.html
# 编写代码
<video width="800" height="450" controls>
	<source src="media/aws.mp4">
</video>

5af6cb14cd54df66f229e48230ce484a.png

好了,以上就是今天这篇文章的全部内容了。 如果你想及时看到我的文章,只需做这几个动作: 点星标、点在看(包括赞)、评论、分享 ,我就会经常出现在您的常读列表,后面更新都会提醒。感谢大家的关注和支持, 祝大家生活美满,学业有成,事业蒸蒸日上!

最后,星标设置如下:

f249ceaa5f962ffc4d13eda1ef3d9323.png

如下即设置成功!

bea9fedb2df4d1f01fd2db1df2f7afc8.png

往期精彩文章推荐(点击下方蓝字即可阅读!)

往期推荐

一文带你快速理解什么是FTP文件传输服务

什么是数据同步服务RSYNC?

SSH服务搭建及免密登录实现

SSH服务搭建之YUM源配置与静态IP配置

SSH基于用户名密码的认证原理

  • 9
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码农后端

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值