搭建nfs文件目录共享

搭建nfs文件目录共享

一、简介

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

二、组成

NFS体系至少有两部分,
一台NFS服务器和若干客户机,如图所示:

在这里插入图片描述

客户机通过TCP/IP网络远程访问存放在NFS服务器上的数据

三、配置

【服务器端】

步骤如下:

1. 安装nfs

NFS可以被视为一个RPC服务,而要启动任何一个RPC服务之前,需要做好端口的对应(映射)的工作,这个工作其实就是RPCBIND这个服务所负责的。
也就是说,在启动任何一个RPC服务之前,我们都需要启动RPCBIND才行!(注意:在CentOS的5.x以前这个软体称为端口映射,在CentOS的6.x之后才称为RPCBIND)

执行命令:

查看系统是否安装nfs服务

      [root@test]# rpm -qa | grep nfs  / rpm -qa | grep rpcbind

yum安装nfs   

     [root@test]# yum install nfs-utils -y
2. 设置nfs

配置文件:/etc/exports

这个文件就是NFS的主要配置文件,系统并没有预设值,所以这个档案不一定会存在,你可能必须要使用vim手动建立;

在这里插入图片描述

其中允许的网段,如果设置为*,则表示允许所有网段,至于权限设置有一些常用的参数,如下:

参数内容说明
rw
ro
该目录分享的权限是可读写(读写)或唯读(只读),但最终能不能读写,还是与档案系统的RWX及身份有关
sync
async
sync 表示资料会同步写入到buffer和磁盘中
async 则表示资料会先暂存于buffer中,而非直接写入磁盘!
no_root_squash
root_squash
预设的情况下,用户端 root 的身份会由 root_squash 的设定压缩成 nfsnobody,如此对伺服器的系统会较有保障。但如果你想要开放用户端使用 root 身份来操作伺服器的档案系统,那么这里就得要开 no_root_squash
all_squash不论登入NFS的使用者身份是什么,用户名都会被压缩成为匿名使用者,通常也就是没有人(nfsnobody)
anonuidanongid匿名意指匿名(匿名者)前面关于* _squash提到的匿名使用者的UID设定值,通常为没人(nfsnobody),但是你可以自行设定这个UID的值!当然,这个UID必需要存在于你的/etc/passwd文件当中,anonuid指的是UID而anongid则是群组的GID

用户端查询服务器端分享资源的指令:/usr/sbin/showmount

这是另一个重要的NFS指令, exportfs是用在NFS服务器端,而showmount显示则主要用在客户端,showmount显示可以用来察看NFS分享出来的目录资源。

3. 启动nfs

执行命令:

     [root@test]# /etc/init.d/rpcbind start
     [root@test]# /etc/init.d/nfs start
     [root@test]# /etc/init.d/nfslock start

注意:千万记得要安装顺序启动,先启动rpcbind,再启动nfs,并建议添加到启动项,之后便可以用service启动nfs服务,执行命令:

     [root@test]# chkconfig rpcbind on
     [root@test]# chkconfig nfs on
     [root@test]# chkconfig nfslock on

4. 配置端口

该服务需要开启防火墙,那么到底要开启哪些端口呢,执行一条命令即可知道,执行命令:

     [root@test]# rpcinfo -p

在这里插入图片描述

由此可以看出需要开启的端口很多,稍稍整理之后,结论如下:

  • rpcbind启动的端口是111,同时启动在udp和tcp
  • nfs本身的服务启动在2049
  • 其他的服务是随机的,不过,建议固定端口,在/etc/sysconfig/nfs修改

执行命令:

     [root@test]# vim /etc/sysconfig/nfs

需要修改的文本内容如下:       

     RQUOTAD_PORT=1001

     LOCKD_TCPPORT=30001

     LOCKD_UDPPORT=30001

     MOUNTD_PORT=1002
5. 检测nfs

在设定好nfs服务器端之后,我们可以在服务器端自我测试是否可以连线,这个时候便用到showmount命令,执行命令:

     [root@test]# showmount -e localhost

在这里插入图片描述

【用户端】

作为用户端只需要开启nfs服务,然后挂载服务器端共享出来的目录即可,

步骤如下:

1. 启动nfs

执行命令:

     [root@test]#  /etc/init.d/rpcbind start
     [root@test]# /etc/init.d/nfs start
     [root@test]# /etc/init.d/nfslock start


注意:千万记得要安装顺序启动,先启动rpcbind,再启动nfs,并建议添加到启动项,之后便可以用service启动nfs服务,执行命令:

     [root@test]# chkconfig rpcbind on
     [root@test]# chkconfig nfs on
     [root@test]# chkconfig nfslock on
2. 挂载目录

执行命令:

     [root@test]# mount -t nfs 172.17.30.53:/userdata1/test /userdata1/test
     [root@test]# df -h

在这里插入图片描述

命令df -h,可以查看是否挂载成功,如上图,红框中是挂载成功的

【测试】

为了验证是否正确搭建nfs,我们先在服务器端共享目录新建一个文件,执行命令:

     [root@test]# vi test

写入一些文本,保存退出,

接着,去到用户端相应的目录查看是否已经有了同步过来的test文件,如果没有,说明未搭建成功,请自行检查问题

我们需要尝试在用户端修改test文件,保存退出,去到服务器端查看是否修改生效,如果已经生效,那么说明双向的共享已经完成,到此nfs搭建成功!

亲测搭建成功

服务器端
查看系统是否安装nfs服务
rpm -qa | grep nfs
rpm -qa | grep rpcbind
yum安装nfs
yum install nfs-utils -y
设置nfs
配置文件:/etc/exports
cat /etc/exports
/nfsdir/ 10.2.0.0/16(rw,no_root_squash,sync)
共享目录  允许访问的网段 权限设置

可以配置多个共享目录。其中允许的网段,如果设置为*,则表示允许所有网段
配置端口

该服务需要开启防火墙,那么到底要开启哪些端口呢,执行一条命令即可知道,执行命令:rpcinfo -p
rpcbind启动的端口是111,同时启动在udp和tcp
nfs本身的服务启动在2049
其他的服务是随机的,不过,建议固定端口,在/etc/sysconfig/nfs修改

cat /etc/sysconfig/nfs  增加如下
RQUOTAD_PORT=1001

LOCKD_TCPPORT=30001

LOCKD_UDPPORT=30001

MOUNTD_PORT=1002

启动nfs
service rpcbind start
service nfs start
service nfslock start
注意:千万记得要顺序启动,先启动rpcbind,再启动nfs(不然会不能正常使用,我遇到的坑),并建议添加到启动项,之后便可以用service启动nfs服务
检测nfs
在设定好nfs服务器端之后,我们可以在服务器端自我测试是否可以连线,这个时候便用到showmount命令
showmount -e localhost
显示共享信息
/nfsdir 10.2.0.0/16
客户端
查看系统是否安装nfs服务
rpm -qa | grep nfs
rpm -qa | grep rpcbind
yum安装nfs
yum install nfs-utils -y
启动nfs
service rpcbind start
service nfs start
service nfslock start
注意:千万记得要顺序启动,先启动rpcbind,再启动nfs(不然会不能正常使用,我遇到的坑),并建议添加到启动项,之后便可以用service启动nfs服务

客户端查询服务器端分享资源的指令:/usr/sbin/showmount
这是另一个重要的NFS指令, exportfs是用在NFS服务器端,而showmount显示则主要用在客户端,showmount显示可以用来察看NFS分享出来的目录资源。
执行命令查看:showmount

挂载目录
mount -t nfs 10.2.229.181:/nfsdir /nfsdir
df -h

在服务器端,和客户端各创建一个文件测试,有没有达到共享效果

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

执行栈和执行上下文

前端面试大全JavaScript执行栈和执行上下文 🌟经典真题 🌟执行上下文 🌟栈数据结构 🌟执行上下文生命周期 🌟真题解答 🌟总结 🌟经典真题 谈谈你对 JavaScript 执行上下文栈理解 &#…

企业计算机服务器中了locked1勒索病毒怎么解锁,locked1勒索病毒数据恢复

随着网络技术在企业的不断应用,企业的生产运营效率得到了极大提升,越来越多的企业利用网络开展工作,这也导致了企业的受到的网络安全威胁也不断增加。在本月,云天数据恢复中心陆续接到很多企业的求助,企业的计算机服务…

Screenshot To Code

序言 对于GPT-4我只是一个门外汉,至于我为什么要了解screenshot to code,只是因为我想知道,在我不懂前端设计的情况下,能不能通过一些工具辅助自己做一些简单的前端界面设计。如果你想通过此文深刻了解GPT-4或者该开源项目&#…

内部类Lambda

静态内部类 /*** 静态成员是在类加载成字节码时就已经存在的,静态只能访问静态*/ public class Demo {public static void main(String[] args) {Outer.Inner.show();} }class Outer {int num1 10;static int num2 20;static class Inner {static void show() {Outer outer …

重庆市失业金申领流程

1.领失业金的前提:非本人意愿中断就业。个人理解就是不是主动辞职才能领。 2.因此公司在处理社保减员的时候,不能是劳动者主动提出离职。 3.社保减员可选择原因:其他原因中断缴费 / 由单位提出双方协商一致解除劳动合同。 4.当社保暂停缴费…

A--Z与a--z的ASCII码的差异

从z到A还有一些字符 应该改为str[i]>A&&str[i]<Z||str[i]>a&&str[i]<z;

C++ string类—初始化、容量操作、迭代器

目录 前言 一、string类 二、初始化 1、无参或带参 2、用字符串变量初始化 3、用字符串初始化 4、指定数量字符 三、容量操作 1、size 2、push_back 3、append​编辑 4、运算符 5、reserve 6、resize 四、迭代器 五、OJ练习 反转字符 找出字符串中出现一次的…

Leetcode144. 二叉树的前序遍历-C语言

文章目录 题目介绍题目分析解题思路1.创建一个数组来储存二叉树节点的值2.根据二叉树的大小来开辟数组的大小3.边前序遍历边向创建的数组中存入二叉树节点的值 完整代码 题目介绍 题目分析 题目要求我们输出二叉树按前序遍历排列的每个节点的值。 解题思路 1.创建一个数组来…

Android HCI日志分析案例1

案例1--蓝牙扫描设备过程分析 应用层发起搜索蓝牙设备&#xff0c;Android 官方提供的蓝牙扫描方式有三种&#xff0c;分别如下&#xff1a; BluetoothAdapter.startDiscovery(); //可以扫描经典蓝牙和BLE两种。BluetoothAdapter.startLeScan();//扫描低功耗蓝牙&#xff0c;…

为XiunoBBS4.0开启redis缓存且支持密码验证

修改模块文件1 xiunoPHP/cache_redis.class.php: <?phpclass cache_redis {public $conf array();public $link NULL;public $cachepre ;public $errno 0;public $errstr ;public function __construct($conf array()) {if(!extension_loaded(Redis)) {return $thi…

2023-2024-1-高级语言程序设计-字符数组

7-1 凯撒密码 为了防止信息被别人轻易窃取&#xff0c;需要把电码明文通过加密方式变换成为密文。输入一个以回车符为结束标志的字符串&#xff08;少于80个字符&#xff09;&#xff0c;再输入一个整数offset&#xff0c;用凯撒密码将其加密后输出。恺撒密码是一种简单的替换…

【spring(六)】WebSocket网络传输协议

&#x1f308;键盘敲烂&#xff0c;年薪30万&#x1f308; 目录 核心概要&#xff1a; 概念介绍&#xff1a; 对比HTTP协议&#xff1a;⭐ WebSocket入门案例&#xff1a;⭐ 核心概要&#xff1a; websocket对比http 概念介绍&#xff1a; WebSocket是Web服务器的一个组件…

力扣.特定深度节点链表(java BFS解法)

Problem: 面试题 04.03. 特定深度节点链表 文章目录 题目描述思路解题方法复杂度Code 题目描述 思路 根据题意需要取出二叉树每一层节点组成的链表并将其添加到一个数组中。我们将该要求分解成如下的操作&#xff1a; 1.利用BFS获取二叉树每一层的节点 2.利用链表的尾插法将二…

04.PostgreSQL是如何实现隔离级别的?

PostgreSQL是如何实现隔离级别的&#xff1f; 事务有哪些特性&#xff1f; 事务看起来感觉简单&#xff0c;但是要实现事务必须要遵守 4 个特性&#xff0c;分别如下&#xff1a; 原子性&#xff08;Atomicity&#xff09;&#xff1a;一个事务中的所有操作&#xff0c;要么…

YOLOv8界面-目标检测+语义分割+追踪+姿态识别(姿态估计)+界面DeepSort/ByteTrack-PyQt-GUI

YOLOv8-DeepSort/ByteTrack-PyQt-GUI&#xff1a;全面解决方案&#xff0c;涵盖目标检测、跟踪和人体姿态估计 YOLOv8-DeepSort/ByteTrack-PyQt-GUI是一个多功能图形用户界面&#xff0c;旨在充分发挥YOLOv8在目标检测/跟踪和人体姿态估计/跟踪方面的能力&#xff0c;与图像、…

具有标记和笔记功能的文件管理器TagSpaces(续)

熟悉老苏的读者都知道&#xff0c;老苏通常只是推荐软件&#xff0c;并简单介绍如何运行它们&#xff0c;而具体的功能则需要读者自行研究。这种方式让老苏能够在工作之余&#xff0c;还能保持每周发布 4 篇的更新。 然而&#xff0c;这种方式也存在明显的缺点。由于老苏没有深…

【面试经典 150 | 二分查找】搜索插入位置

文章目录 写在前面Tag题目来源题目解读解题思路方法一&#xff1a;二分查找闭区间左闭右开区间开区间总结 知识总结写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法&#xff0c;两到三天更新一篇文章&#xff0c;欢迎催更…… 专栏内容以分析题目为主&#xff0c…

使用Pytorch从零开始实现BERT

生成式建模知识回顾: [1] 生成式建模概述 [2] Transformer I&#xff0c;Transformer II [3] 变分自编码器 [4] 生成对抗网络&#xff0c;高级生成对抗网络 I&#xff0c;高级生成对抗网络 II [5] 自回归模型 [6] 归一化流模型 [7] 基于能量的模型 [8] 扩散模型 I, 扩散模型 II…

一篇带你走进线性表之顺序表(C语言阐述)——逐行解释代码

目录哇 1. 引言- 顺序表在数据结构中的地位和作用- 概述本文将讨论的内容和结构 2. 顺序表的基本概念- 定义&#xff1a;什么是顺序表&#xff1f;- 结构&#xff1a;顺序表的内部结构和特点 3. 实现一个基本的顺序表***需要用到的头文件******定义顺序表的基本结构和属性*****…

Windows11系统下MemoryCompression导致内存占用率过高

. # &#x1f4d1;前言 本文主要是win11系统下CPU占用率过高如何下降的文章&#xff0c;如果有什么需要改进的地方还请大佬指出⛺️ &#x1f3ac;作者简介&#xff1a;大家好&#xff0c;我是青衿&#x1f947; ☁️博客首页&#xff1a;CSDN主页放风讲故事 &#x1f304;每日…