搭建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 rpcbindyum安装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=1001LOCKD_TCPPORT=30001LOCKD_UDPPORT=30001MOUNTD_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=1001LOCKD_TCPPORT=30001LOCKD_UDPPORT=30001MOUNTD_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

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

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

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

相关文章

LangChain的函数,工具和代理(三):LangChain中轻松实现OpenAI函数调用

在我之前写的两篇博客中:OpenAI的函数调用,LangChain的表达式语言(LCEL)中介绍了如何利用openai的api来实现函数调用功能,以及在langchain中如何实现openai的函数调用功能,在这两篇博客中,我们都需要手动去创建一个结构比较复杂的函数描述变量…

存储虚拟化的写入过程

存储虚拟化的场景下,整个写入的过程。 在虚拟机里面,应用层调用 write 系统调用写入文件。write 系统调用进入虚拟机里面的内核,经过 VFS,通用块设备层,I/O 调度层,到达块设备驱动。虚拟机里面的块设备驱动…

分享89个清新唯美PPT,总有一款适合您

分享89个清新唯美PPT,总有一款适合您 89个清新唯美PPT下载链接:https://pan.baidu.com/s/14DAA9jvVmlQZ_FJ4DNy9Rw?pwd8888 提取码:8888 Python采集代码下载链接:采集代码.zip - 蓝奏云 学习知识费力气,收集整…

LeetCode Hot100 438.找到字符串中所有字母异位词

题目: 给定两个字符串 s 和 p,找到 s 中所有 p 的 异位词 的子串,返回这些子串的起始索引。不考虑答案输出的顺序。 异位词 指由相同字母重排列形成的字符串(包括相同的字符串)。 代码: class Solution …

伙伴关系亲密无间,泄密无从滋生:上海迅软DSE帮您提升供应商机密保护力!

如今企业与第三方供应商的合作越来越频繁,为了达到合作伙伴的信息安全要求,防止机密被有意无意泄露,不少企业除了提高员工安全意识,还会主动部署安全产品,强化企业的信息保护措施。 迅软DSE企业机密防泄密解决方案 1、…

centos8 在线安装、离线安装cmake

在线安装 yum install -y cmake make 离线安装 通过finalshell 上传离线安装包 离线安装 进入到程序所在路径下执行命令进行安装 rpm -Uvh --force --nodeps *.rpm

汽车行驶不同工况数据

1、内容简介 略 28-可以交流、咨询、答疑 2、内容说明 汽车行驶不同工况数据 汽车行驶不同工况数据 ECE、EUDC、FTP75、NEDC、自定义 3、仿真分析 4、参考论文 略 链接:https://pan.baidu.com/s/1AAJ_SlHseYpa5HAwMJlk1w 提取码:rvol

2021年11月10日 Go生态洞察:Twelve Years of Go

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…

模糊C均值(Fuzzy C-means,FCM)聚类的可运行的python程序代码,复制即可用!!切记需要安装库 scikit-fuzzy

文章目录 前言一、安装库 scikit-fuzzy二、具体程序代码(复制可运行)三、结果展示总结 前言 模糊C均值(Fuzzy C-means,FCM)聚类是一种软聚类方法,它允许数据点属于多个聚类,每个数据点对所有聚…

leecode 【二】

相交链表 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。 图示两个链表在节点 c1 开始相交: 题目数据 保证 整个链式结构中不存在环。 注意,函数返…

朴素贝叶斯算法

一、贝叶斯算法 朴素贝叶斯算法是一种基于贝叶斯定理的分类算法。在理解朴素贝叶斯算法之前,需要先了解贝叶斯定理。最早出现在英国数学家托马斯贝叶斯(Thomas Bayes)在 1763 年发表的一篇论文中,该定理实际上是一种用于计算在给定某些前提条件下某个事…

使用Xshell启动远程服务器上的tensorboard:本地浏览器打开

在远程服务器上启动的tensorboard产生的localhost网址用本地浏览器一般不能直接打开,我们需要建立本地PC与远程服务器的通信,将tensorboard的映射端口与本地端口连接起来(参考解决方案)。 一、连接远程服务器设置 二、添加SSH隧道…