NFS共享储存

这篇具有很好参考价值的文章主要介绍了NFS共享储存。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

第1章 NFS介绍

1.什么是共享存储

一句话说就是多台服务器的数据保存在同一个存储服务器上。这样无论用户请求在哪一台服务器上看到的数据都是一样的

2.什么是NFS

NFS Network File System 网络文件系统。 
NFS 主要功能是通过局域网络让不同的主机系统之间可以共享文件或目录
NFS 系统和 Windows 网络共享、网络驱动器类似, 只不过 windows用于局域网, NF 用于企业集群架构中, 如果是大型网站, 会用到更复杂的分布式文件系统 glusterfs,Ceph等 

3.NFS应用场景

1.多台web服务器的图片和视频数据都保存在NFS服务器上
2.多台服务器的备份数据都保存在NFS服务器上 

4.NFS通讯原理

1.服务端启动后将自己的端口信息注册到rpcbind
2.NFS客户端通过TCP/IP的方式连接NFS服务端的rpcbind并获得真实的端口信息
3.NFS客户端获得真实的端口后,将自己需要的操作函数通过⽹络发送给NFS服务端对应的端口
4.NFS服务端接收到请求后,由rpc.nfsd进程判断NFS客户端是否拥有连接权限
5.NFS服务端的rpc.mount进程判断客户端是否有对应的操作权限
6.最后NFS服务端会将对应请求的函数转换为本地能识别的命令,传递至内核,由内核驱动硬件
注意: rpc 是⼀个远程过程调用,那么使用 nfs 必须有 rpc 服务 

NFS共享储存

 

第2章 NFS服务端配置

1.安装软件

yum install nfs-utils -y

2.修改配置文件

配置文件格式:

举例:
/data       172.16.1.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)
共享目录    允许客户端访问的IP(共享参数)

解释:
NFS共享目录路径 允许NFS客户端访问的IP地址(参数)

注意:
访问地址和参数之间没有空格 

配置文件解释:

执行 man exports 命令,然后切换到文件结尾,可以快速查看如下样例格式:
rw #读写权限
ro #只读权限
root_squash #当NFS客户端以root管理员访问时,映射为NFS服务器的匿名用户(不常用)
no_root_squash #当NFS客户端以root管理员访问时,映射为NFS服务器的root管理员(不常用)
all_squash #无论NFS客户端使用什么账户访问,均映射为NFS服务器的匿名用户(常用)
no_all_squash #无论NFS客户端使用什么账户访问,都不进行压缩
sync #同时将数据写入到内存与硬盘中,保证不丢失数据
async #优先将数据保存到内存,然后再写入硬盘;这样效率更高,但可能会丢失数据
anonuid #配置all_squash使用,指定NFS的用户UID,必须存在系统
anongid #配置all_squash使用,指定NFS的用户GID,必须存在系统

配置命令:

cat > /etc/exports << 'EOF'
/data 172.16.1.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)
EOF

3.创建www用户

groupadd www -g 1000
useradd www -u 1000 -M -s /sbin/nologin

4.创建数据目录并授权

mkdir /data -p
chown -R www:www /data/

5.启动NFS服务

systemctl start nfs
systemctl status nfs rpcbind

6.检查服务状态

[root@nfs-31 /]# showmount -e 172.16.1.31
Export list for 172.16.1.31:
/data 172.16.1.0/24

7.添加开机自启动

[root@nfs-31 /]# systemctl enable nfs

第3章 NFS客户端配置

1.安装软件

yum install nfs-utils -y

2.通讯测试

[root@web-7 ~]# showmount -e 172.16.1.31
Export list for 172.16.1.31:
/data 172.16.1.0/24

3.挂载测试

[root@web-7 /]# mkdir -p /data
[root@web-7 /]# mount -t nfs 172.16.1.31:/data/ /data/
[root@web-7 /]# df -h|grep data
172.16.1.31:/data         37G  1.5G   36G   5% /data

4.配置开机自动挂载

cat >> /etc/fstab << 'EOF'
172.16.1.31:/data   /data   nfs   defaults     0 0
EOF
[root@web-7 /]# mount -a
[root@web-7 /]# df -h|grep data
172.16.1.31:/data         37G  1.5G   36G   5% /data

5.卸载测试

[root@web-7 ~]# umount /data 
[root@web-7 ~]# df -h|grep data

第4章 NFS权限参数测试

1.验证ro权限

服务端配置:

/data 172.16.1.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)

客户端挂载:

mount -t nfs 172.16.1.31:/data /data
df -h|grep data

测试读取:

cat /data/123.txt

测试写入:

echo "backup" > /data/123.txt

2.验证all_squash,anonuid,anongid权限

服务端配置:

/data 172.16.1.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)

服务端创建用户及授权:

useradd www -u 1000 -g 1000 -M -s /sbin/nologin

重启NFS服务:

systemctl restart nfs

更改目录授权:

chown -R www:www /data/

客户端操作:

mount -t nfs 172.16.1.31:/data /data
ll -d /data/
ll -d /data/
echo "123" > /data/123.txt 
cat /data/123.txt

第5章 NFS项目实战

1.项目需求

2.通讯测试

3.挂载测试

4.卸载测试

第6章 NFS故障案例

1.NFS服务故障导致目录卡住

故障现象:

如果NFS客户端挂载期间,NFS服务端服务停止了服务,会导致客户端与目录或文件相关的操作卡住。 

问题解决:

第一种方法:修复NFS服务端的服务,使其正常工作  systemctl start nfs
第二种方法:强制卸载NFS挂载目录   umount -f /data 

2.NFS服务故障导致开机卡住

故障现象:

如果NFS客户端服务器设置了开机自动挂载,但是NFS客户端系统启动的时候NFS服务端并没有提供服务,就会导致开机自检的时候卡在挂载那一步,至少会卡住1分30秒。 

问题解决:

第一种方法:修复NFS服务端的服务,使其正常工作
第二种方法:等!
第三种方法:进入单用户模式,注释掉/etc/fstab里的挂载信息,然后重新启动系统 

3.防火墙阻挡

查看nfs端口:

rpcinfo -p

firewall防⽕墙配置:

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

iptables防火墙配置:

#1.启动NFS会开启如下端口:
portmapper 端口:111 udp/tcp;
nfs/nfs_acl 端口:2049 udp/tcp;
mountd 端口:"32768--65535" udp/tcp
nlockmgr 端口:"32768--65535" udp/tcp
系统 RPC服务在 nfs服务启动时默认会给 mountd 和 nlockmgr 动态选取一个随机端口来进行通讯。

#2.查看nfs端口
rpcinfo -p

#3.将随机的端口号设置固定:
[root@nfs-31 ~]# vim /etc/sysconfig/nfs
[root@nfs-31 ~]# tail -5 /etc/sysconfig/nfs
RQUOTAD_PORT=4001
LOCKD_TCPPORT=4002
LOCKD_UDPPORT=4002
MOUNTD_PORT=4003
STATD_PORT=4004

#4.重启nfs和rpc服务
systemctl restart rpcbind.service nfs-server.service

#5.再次查看端口信息,发现端口号已经固定了
rpcinfo -p

#6.设置iptables
iptables -A INPUT -p tcp -m tcp --dport 111 -j ACCEPT
iptables -A INPUT -p udp -m udp --dport 111 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 2049 -j ACCEPT
iptables -A INPUT -p udp -m udp --dport 2049 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 4001:4004 -j ACCEPT
iptables -A INPUT -p udp -m udp --dport 4001:4004 -j ACCEPT

#7.最后别忘记保存配置了

第7章.NFS小结

1.NFS 存储优点

1.NFS 文件系统简单易用、方便部署、数据可靠、服务稳定、满足中小企业需求。
2.NFS 文件系统内存放的数据都在文件系统之上,所有数据都是能看得见

2.NFS 存储局限

1.存在单点故障, 如果构建高可用维护麻烦 web->nfs()->backup
2.NFS 数据明文, 并不对数据做任何校验。
3.客户端挂载 NFS 服务没有密码验证, 安全性一般(内网使用) 

3.NFS 应用建议

1.生产场景应将静态数据尽可能往前端推, 减少后端存储压力
2.必须将存储里的静态资源通过 CDN 缓存 jpg\png\mp4\avi\css\js
3.如果没有缓存或架构本身历史遗留问题太大, 在多存储也无用  文章来源地址https://www.toymoban.com/news/detail-491565.html

到了这里,关于NFS共享储存的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • linux nfs共享存储服务

    目录 一、nfs服务 二、nfs优点 三、配置文件 四、共享文件配置过程 五、实验 1.创建共享文件(两台终端共享)                             一、nfs服务 概念:网络上共享文件系统的协议,运行多个服务器之间通过网络共享文件和目录 服务端:将指定目录标记为共享目录

    2024年02月06日
    浏览(45)
  • 【Linux】linux nfs共享存储服务

    目录 一、nfs服务 二、nfs优点 三、配置文件 四、共享文件配置过程 五、实验 1.创建共享文件(两台终端共享) 概念:网络上共享文件系统的协议,运行多个服务器之间通过网络共享文件和目录 服务端:将指定目录标记为共享目录,服务段有访问权限,共享目录有全部权限

    2024年02月10日
    浏览(32)
  • 部署YUM仓库及NFS共享存储

    引言: 学习YUM 软件仓库,可以完成安装、卸载、自动升级 rpm 软件包等任务,能够自动 查找并解决 rpm 包之间的依赖关系,而无须管理员逐个、手工地去安装每个 rpm 包,使管理员在维护大量 Linux 服务器时更加轻松自如。特别是在拥有大量 Linux 主机的本地网络中, 构建一台

    2024年01月18日
    浏览(29)
  • 云计算项目五:部署数据库服务mysql |部署共享存储服务NFS | 配置网站服务

    机器配置 具体配置如下: 添加磁盘 磁盘分区 创建LV 格式化 分别给2台虚拟机添加2块5G的磁盘 查看物理卷 创建卷组 查看卷组大小 创建逻辑卷 两台主机都要做此项操作 具体操作如下: 安装MySQL软件 挂载LV分区 启动服务 管理员登录

    2024年01月25日
    浏览(33)
  • 搭建NFS服务器,部署k8s集群,并在k8s中使用NFS作为持久化储存

    🐇明明跟你说过:个人主页 🏅个人专栏:《Kubernetes航线图:从船长到K8s掌舵者》 🏅 🔖行路有良友,便是天堂🔖 目录 一、前言 1、k8s概述 2、NFS简介 二、NFS服务器搭建 1、准备NFS 服务器 2、搭建NFS服务 三、安装k8s集群 1、环境准备 2、禁用防火墙和SELinux 3、设置时间同步

    2024年04月13日
    浏览(29)
  • (26)Linux 进程通信之共享内存(共享储存空间)

    共享内存是System V版本的最后一个进程间通信方式。 共享内存,顾名思义就是允许两个不相关的进程访问同一个逻辑内存,共享内存是两个正在运行的进程之间共享和传递数据的一种非常有效的方式。不同进程之间共享的内存通常为同一段物理内存。进程可以将同一段物理内

    2024年01月16日
    浏览(31)
  • 【NFS共享客户端挂载】NFS开机自动挂载方法

    一、存储环境信息 1、NFS存储共享名:/HW_Email 2、NAS业务IP地址:192.168.3.11 3、服务器操作系统版本:Centos7.6 二、挂载NFS共享 1、登录服务器操作系统后执行如下命令查看存储共享目录名称 [root@localhost ~]# showmount -e 192.168.3.11 2、在服务器本地根目录下新建一个名为NFS的目录(本

    2024年02月07日
    浏览(32)
  • openwrt 挂载硬盘NFS共享,非SMB共享

    问题背景:给软路由添加文件共享服务,多设备可用,samba插件装不上,又看到NFS性能更好,便研究了下怎么设置。由于网上相关资料参差不齐,在设置过程中也是十分困难,故写一篇博客记录一下,帮助下有相同困扰的朋友。 详细步骤: 1.首先将硬盘格式化为ext4格式,可以

    2024年02月06日
    浏览(88)
  • NFS网络文件共享服务

    NFS(network file system)网络文件系统 可以把对方主机资源直接挂载到自己电脑上,比FTP更加方便   明文传输   没有认证机制 安全性很差 只在局域网使用   依赖RPC(远程过程调用)   需要安装nfs-utils(提供NFS服务),rpcbind(提供RPC服务)软件包   系统服务:nfs、rpcbind   共享配置

    2023年04月24日
    浏览(32)
  • NFS共享服务

    NFS(Network File System)即网络文件系统 ,是FreeBSD支持的文件系统中的一种,它允许 网络中的计算机之间通过TCP/IP网络共享资源 。在NFS的应用中, 本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样 。 它的主要功能是 通过网络让不同的机

    2024年02月15日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包