当前位置: 首页 > article >正文

搭建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

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


http://www.kler.cn/a/154398.html

相关文章:

  • 动态规划之股票系列
  • 【网络安全】网络安全防护体系
  • PCHMI串口接收实验
  • go 集成swagger 在线接口文档
  • spark 设置hive.exec.max.dynamic.partition不生效
  • 前端无感刷新token
  • Unity 加载本地图片的方法
  • 24.有哪些生命周期回调方法?有哪几种实现方式?
  • mysql区分大小写吗
  • 亚马逊云科技推出新一代自研芯片
  • 程序员的亚健康
  • N-135基于springboot,vue高校图书馆管理系统
  • 如何使用 NFTScan NFT API 在 Starknet 网络上开发 Web3 应用
  • JIRA 基本使用
  • Web框架与Django路由层
  • 初始数据结构(加深对旋转的理解)
  • Python自动化——原生警告框和自定义弹窗的区别
  • 智能优化算法应用:基于共生生物算法无线传感器网络(WSN)覆盖优化 - 附代码
  • 【嵌入式-51单片机】常见位运算和数据类型以及sbit使用
  • 5个被忽视的Linux实用命令
  • 《第一行代码:Android》第三版4.2常用控件的使用方法(2)
  • 求整数序列中出现次数最多的数
  • 深入理解同源限制:网络安全的守护者(下)
  • Linux 磁盘分区处理
  • JPEG 协议中英文对照
  • 分布式ID生成框架Leaf升级踩坑