CentOS7.9环境上NFS搭建及使用

Linux环境NFS搭建及使用

  • 1. 服务器规划
  • 2. NFS服务器配置
    • 2.1 主机名设置
    • 2.2 nfs安装
      • 2.2.1 repo文件替换
      • 2.2.2 NFS服务安装
    • 2.3 nfs配置
    • 2.4 服务查看
    • 2.5 资源发布
    • 2.6 配置nfs服务开机自启
    • 2.7 端口开放
  • 3.应用服务器配置
    • 3.1 主机名设置
    • 3.2 nfs安装
      • 3.2.1 repo文件替换
      • 3.2.2 NFS服务安装
    • 3.3 挂载配置及测试
      • 3.3.1 创建挂载目录
      • 3.3.2 测试挂载
      • 3.3.3 读写测试
      • 3.3.4 配置开机自动挂载
      • 3.3.5 配置开机自启动rpcbind服务
      • 3.3.6 重启应用服务器测试
  • 4.其他

1. 服务器规划

IP主机名用途
172.16.32.3file_serverNFS服务器(文件服务器)
172.16.32.4app_server应用服务器(挂载文件服务器目录)

实例为将172.16.32.3服务器上的/data挂载到172.16.32.4的/data1目录上

2. NFS服务器配置

2.1 主机名设置

hostnamectl set-hostname file_server && bash
// 设置主机名,并在当前会话中生效

在这里插入图片描述

2.2 nfs安装

2.2.1 repo文件替换

wget https://mirrors.aliyun.com/repo/Centos-7.repo -O /etc/yum.repos.d/CentOS-Base.repo
// CentOS自带yum源不可用,故直接从网络下载阿里云repo配置文件覆盖默认配置文件# 清理缓存
yum clean all && yum makecache

在这里插入图片描述
附:CentOS-Base.repo配置文件全部内容

[base]
name=CentOS-$releasever - Base - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/http://mirrors.aliyuncs.com/centos/$releasever/os/$basearch/http://mirrors.cloud.aliyuncs.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7#released updates 
[updates]
name=CentOS-$releasever - Updates - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/updates/$basearch/http://mirrors.aliyuncs.com/centos/$releasever/updates/$basearch/http://mirrors.cloud.aliyuncs.com/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/extras/$basearch/http://mirrors.aliyuncs.com/centos/$releasever/extras/$basearch/http://mirrors.cloud.aliyuncs.com/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/centosplus/$basearch/http://mirrors.aliyuncs.com/centos/$releasever/centosplus/$basearch/http://mirrors.cloud.aliyuncs.com/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7#contrib - packages by Centos Users
[contrib]
name=CentOS-$releasever - Contrib - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/contrib/$basearch/http://mirrors.aliyuncs.com/centos/$releasever/contrib/$basearch/http://mirrors.cloud.aliyuncs.com/centos/$releasever/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

2.2.2 NFS服务安装

yum install -y nfs-utils

2.3 nfs配置

  1. 创建共享目录
mkdir /data

在这里插入图片描述
2. 配置共享/data目录

cat >> /etc/exports<<'EOF'
/data 172.16.32.4(sync,rw,no_root_squash)
EOF
// 配置本机/data目录允许172.16.32.4服务器进行连接以下是一些常用的NFS共享参数:
sync:数据同步写入到内存与磁盘中,保证数据不会在发生断电时丢失,提高了数据的安全性。
rw:表示NFS文件系统可以进行读写操作。
ro:表示NFS文件系统只能进行读操作。
no_root_squash:客户机以root用户访问该共享目录时,它所拥有的权限为该服务器本地的root用户权限,可以对该目录进行读写操作,这会带来一定的安全隐患。
root_squash:客户机以root用户访问该共享目录时,它的权限会变成nfsnobody用户(一般没有权限),只能对该目录进行读操作。
all_squash:不管使用NFS的客户机的用户身份为何,他的身份都会变成nfsnobody。
anonuid/anongid:可以将访问NFS的用户身份映射成指定的用户。

在这里插入图片描述

2.4 服务查看

systemctl status rpcbind.service
systemctl status nfs.service
# 查看状态,如果没有启动,则需要使用下述命令启动对应服务
# 演示环境nfs服务未启动,故需要手动启动nfs服务
systemctl start rpcbind.service
systemctl start nfs.service
ps -ef|grep nfs

在这里插入图片描述

2.5 资源发布

exportfs -rv

在这里插入图片描述

2.6 配置nfs服务开机自启

systemctl enable rpcbind.service
systemctl enable nfs-server.service

2.7 端口开放

方案1:直接关闭防火墙

systemctl stop firewalld

方案2:放行NFS指定端口

# 查看防火墙放行端口
firewall-cmd --zone=public --list-ports
# 若不放行任何端口,在showmount时,报错:clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)# 配置端口放行
firewall-cmd --permanent --zone=public --add-port=2049/tcp
firewall-cmd --permanent --zone=public --add-port=2049/udp
firewall-cmd --permanent --zone=public --add-port=111/tcp
firewall-cmd --permanent --zone=public --add-port=111/udp
# 重新加载防火墙策略
firewall-cmd --reload
# 只放行2049和111端口后,在其他服务器上showmount报错:rpc mount export: RPC: Unable to receive; errno = No route to host# 除此之外,还需要放行rpc.mountd对应的端口(查看命令:netstat -lntp)
firewall-cmd --permanent --zone=public --add-port=20048/tcp
firewall-cmd --permanent --zone=public --add-port=20048/udp
firewall-cmd --reload

在这里插入图片描述

3.应用服务器配置

3.1 主机名设置

hostnamectl set-hostname app_server && bash
// 设置主机名,并在当前会话中生效

在这里插入图片描述

3.2 nfs安装

3.2.1 repo文件替换

wget https://mirrors.aliyun.com/repo/Centos-7.repo -O /etc/yum.repos.d/CentOS-Base.repo
// CentOS自带yum源不可用,故直接从网络下载阿里云repo配置文件覆盖默认配置文件# 清理缓存
yum clean all && yum makecache

在这里插入图片描述

3.2.2 NFS服务安装

yum install -y nfs-utils

3.3 挂载配置及测试

3.3.1 创建挂载目录

mkdir /data1

3.3.2 测试挂载

showmount -e 172.16.32.3
mount -t nfs -o sync,noac 172.16.32.3:/data /data1
查看:df -Th

在这里插入图片描述

3.3.3 读写测试

cd /data/
touch 111.txt

在这里插入图片描述
应用服务器删除,文件服务器查看

rm -rf /data1/111.txt

在这里插入图片描述

3.3.4 配置开机自动挂载

echo '172.16.32.3:/data /data1 nfs sync,noac,_netdev 0 0' >> /etc/fstab测试fstab配置文件挂载是否异常:mount -a

在这里插入图片描述

3.3.5 配置开机自启动rpcbind服务

systemctl enable rpcbind.service

3.3.6 重启应用服务器测试

reboot

在这里插入图片描述

4.其他

showmount漏洞–在其他服务器上,使用showmount也可以打印出NFS(文件)服务器配置的共享目录信息
修复方法:

[root@file_server data]# systemctl list-unit-files | grep rpcbind
rpcbind.service                               enabled 
rpcbind.socket                                enabled 
rpcbind.target                                static  [root@file_server data]# echo 'rpcbind:ALL:deny' >> /etc/hosts.deny
[root@file_server data]# cat /etc/hosts.deny | grep -v "#" | grep -v "^$"
rpcbind:ALL:deny[root@file_server data]# cat /etc/hosts.allow | grep -v "#" | grep -v "^$"
[root@file_server data]# echo 'rpcbind:172.16.32.4:allow' >> /etc/hosts.allow
[root@file_server data]# echo 'rpcbind:localhost:allow' >> /etc/hosts.allow[root@file_server data]# cat /etc/hosts.allow | grep -v "#" | grep -v "^$"
rpcbind:172.16.32.4:allow
rpcbind:localhost:allow[root@file_server data]# service sshd restart
Redirecting to /bin/systemctl restart sshd.service

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/426871.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

你真的需要理解Diffusion(扩散模型),它在视觉领域具有无与伦比的美丽!

【Vision结合Diffusion】模型的研究方向&#xff0c;探索了如何利用扩散模型在数据空间中模拟随机游走的特性&#xff0c;以生成高质量和逼真的图像。这一领域的研究&#xff0c;通过结合视觉感知和文本描述&#xff0c;推动了图像合成技术的发展&#xff0c;尤其是在个性化图像…

对人像图添加指定光源,再进行二次扩图

在一些业务场景中&#xff0c;需要对人像图片添加特定光源&#xff0c;来增加氛围感&#xff0c;例如赛博朋克科技、海边夕阳余晖、以及红蓝相间的高冷&#xff1b;但实现这个功能的难点是&#xff1a;如何将光源与原图片融合&#xff0c;在图片上产生正常光的镜面反射&#xf…

从数据仓库到数据中台再到数据飞轮:我了解的数据技术进化史

这里写目录标题 前言数据仓库&#xff1a;数据整合的起点数据中台&#xff1a;数据共享的桥梁数据飞轮&#xff1a;业务与数据的双向驱动结语 前言 在当今这个数据驱动的时代&#xff0c;企业发展离不开对数据的深度挖掘和高效利用。从最初的数据仓库&#xff0c;到后来的数据…

工业一体机在汽车零部件工厂ESOP系统中的关键作用

在当今竞争激烈的汽车市场中&#xff0c;汽车零部件工厂的高效生产和严格质量控制至关重要。而工业一体机在汽车零部件工厂的 ESOP&#xff08;电子标准化作业程序&#xff09;系统中发挥着关键作用。 一、汽车零部件工厂面临的挑战 汽车零部件的生产过程复杂且要求严格&#…

【sgCreateCallAPIFunctionParam】自定义小工具:敏捷开发→调用接口方法参数生成工具

<template><div :class"$options.name" class"sgDevTool"><sgHead /><div class"sg-container"><div class"sg-start"><div style"margin-bottom: 10px">参数列表[逗号模式]<el-too…

soc及其相关概念

用户无法直接操作内存&#xff0c;只能让内存映射到用户空间然后操作 1. 内存映射&#xff08;Memory-Mapped Files&#xff09;内存映射文件是一种方法&#xff0c;它允许一个或多个进程将一个文件或者一个匿名区域映射到它们各自的虚拟地址空间中。当文件被映射到内存后&…

Android WebView H5 Hybrid 混和开发

对于故乡&#xff0c;我忽然有了新的理解&#xff1a;人的故乡&#xff0c;并不止于一块特定的土地&#xff0c;而是一种辽阔无比的心情&#xff0c;不受空间和时间的限制&#xff1b;这心情一经唤起&#xff0c;就是你已经回到了故乡。——《记忆与印象》 前言 移动互联网发展…

前端开发之迭代器模式

在前端开发中&#xff0c;设计模式是提升代码可读性、可扩展性和可维护性的关键。迭代器模式&#xff08;Iterator Pattern&#xff09;是行为型设计模式中的一种&#xff0c;能够让我们顺序访问一个集合中的元素&#xff0c;而不暴露其底层的结构。在 TypeScript 这样具有类型…

Golang | Leetcode Golang题解之第406题根据身高重建队列

题目&#xff1a; 题解&#xff1a; func reconstructQueue(people [][]int) (ans [][]int) {sort.Slice(people, func(i, j int) bool {a, b : people[i], people[j]return a[0] > b[0] || a[0] b[0] && a[1] < b[1]})for _, person : range people {idx : pe…

element-ui 日期选择器设置禁用日期

element-ui 日期选择器设置禁用日期 效果图如下&#xff1a; 2024-09-01 到2024-09-18之间的日期都不可选 2024-01-01之前的日期都不可选 官方文档中 picker-options 相关的介绍 实现功能&#xff1a; ​ 某仓库有限制最大可放置资产数量&#xff0c;且资产出借和存放都有…

高端论坛报告分享 | 李维森:中国地理信息产业发展报告(2024)

本报告为中国地理信息产业协会会长李维森在“2024中国地理信息产业大会”所作报告《中国地理信息产业发展报告&#xff08;2024&#xff09;》。转载请注明来源于中国地理信息产业协会。 本报告为中国地理信息产业协会会长李维森在“2024中国地理信息产业大会”所作报告《中国地…

Linux系统应用之知识补充——OpenEuler(欧拉)的安装和基础配置

前言 这篇文章将会对OpenEuler的安装进行详解&#xff0c;一步一步跟着走下去就可以成功 注意 &#xff1a;以下的指令操作最好在root权限下进行&#xff08;即su - root&#xff09; ☀️工贵其久&#xff0c;业贵其专&#xff01; 1、OpenEuler的安装 这里我不过多介绍&a…

GPT-4-Turbo 和 Claude-3.5-Sonnet 图片识别出答题的是否正确 进行比较

1、比较的图片&#xff1a; 使用GPT-4-Turbo 输入的 提问&#xff1a; 识别图片中的印刷字和手写字&#xff0c;如果写错的给一个正确答案 图片 回复&#xff1a; 在图片中&#xff0c;印刷字显示的是一系列的英语填空练习题&#xff0c;而手写字则是填入空白处的答案。以…

运行容器应用

kubernetes通过各种controller来管理pod的生命周期&#xff0c;为了满足不同的业务场景&#xff0c;kubernetes开发了Deployment&#xff0c;ReplicaSet&#xff0c;DaemonSet&#xff0c;StatefulSet&#xff0c;Job等多种ControllerDeployment&#xff1a; kubectl run nginx…

WebSocket 协议

原文地址&#xff1a;xupengboo WebSocket WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。 在 WebSocket API 中&#xff0c;浏览器和服务器只需要完成一次握手&#xff0c;两者之间就直接可以创建持久性的连接&#xff0c;并进行双向数据传输。…

MYSQL出现“mysql不是内部或外部命令,也不是可运行的程序”

目录 1.配置环境变量 2.重新打开cmd测试 1.配置环境变量 进入mysql目录下的bin文件夹 复制目录 我们按下win&#xff0c;然后搜索“环境” 粘贴刚刚复制的目录 2.重新打开cmd测试 可以看到此时mysql正常

基于web的工作管理系统设计与实现

博主介绍&#xff1a;专注于Java vue .net php phython 小程序 等诸多技术领域和毕业项目实战、企业信息化系统建设&#xff0c;从业十五余年开发设计教学工作 ☆☆☆ 精彩专栏推荐订阅☆☆☆☆☆不然下次找不到哟 我的博客空间发布了1000毕设题目 方便大家学习使用 感兴趣的…

【Redis】Redis 典型应用 - 分布式锁原理与实现

目录 Redis 典型应⽤ - 分布式锁什么是分布式锁分布式锁的基础实现引⼊过期时间引⼊校验 id引⼊ lua引⼊ watch dog (看⻔狗)引⼊ Redlock 算法其他功能 Redis 典型应⽤ - 分布式锁 什么是分布式锁 在⼀个分布式的系统中&#xff0c; 也会涉及到多个节点访问同⼀个公共资源的…

飞书项目管理使用攻略

文章目录 项目管理项目管理的方法和工具项目管理方法&#xff1a;项目管理工具 飞书项目管理平台 创建空间需求管理缺陷管理人员排期飞书也可以创建敏捷开发管理.删除空间 参考文章 项目管理 项目管理是指在项目活动中运用专门的知识、技能、工具和方法&#xff0c;使项目能够…

Java面试篇基础部分-Java线程生命周期

线程的生命周期分别为 新建(New)、就绪(Runnable)、运行(Running)、阻塞(Blocked)和死亡(Dead)这五种状态。   在系统运行过程中有线程不断地被创建,而旧的线程在执行完毕之后被清理,线程通过排队的方式获取共享资源或者锁的时候被阻塞,所以运行中的线程就会在…