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

CentOS 7安装和配置 NFS

前言

NFS 是 Network File System 的缩写,即网络文件系统。功能是让客户端通过网络访问不同主机上磁盘里的数据,主要用在类 Unix 系统上实现文件共享的一种方法。本例演示 CentOS 7 下安装和配置 NFS 的基本步骤。

环境说明

CentOS 7(Minimal Install)

$ cat /etc/redhat-release 
CentOS Linux release 7.6.1804 (Core)

本例演示环境如下:

NameIP AddrDescription
Server192.168.165.200服务端 IP
Client192.168.165.202客户端 IP

根据官网说明 Chapter 8. Network File System (NFS) - Red Hat Customer Portal, CentOS 7.4 以后,支持 NFS v4.2 不需要 rpcbind 了,但是如果客户端只支持 NFS v3 则需要 rpcbind 这个服务。

服务端

服务端安装

使用 yum 安装 NFS 安装包。

$ sudo yum install nfs-utils

注意: 只安装 nfs-utils 即可,rpcbind 属于它的依赖,也会安装上。

服务端配置

设置 NFS 服务开机启动

$ sudo systemctl enable rpcbind
$ sudo systemctl enable nfs

启动 NFS 服务

$ sudo systemctl start rpcbind
$ sudo systemctl start nfs

在这里插入图片描述

防火墙关闭

systemctl stop firewalld
systemctl status firewalld
systemctl disable firewalld

在这里插入图片描述### 配置共享目录

服务启动之后,我们在服务端配置一个共享目录

$ sudo mkdir /data
$ sudo chmod 755 /data

在这里插入图片描述

根据这个目录,相应配置导出目录

$ sudo vi /etc/exports

添加如下配置

/data/     192.168.165.0/24(rw,sync,no_root_squash,no_all_squash)
  • /data/: 共享目录位置。
  • 192.168.165.0/24: 客户端 IP 范围,* 代表所有,即没有限制。
  • rw: 权限设置,可读可写。
  • sync: 同步共享目录。
  • no_root_squash: 可以使用 root 授权。
  • no_all_squash: 可以使用普通用户授权。

:wq 保存设置之后,重启 NFS 服务。
在这里插入图片描述

$ sudo systemctl restart nfs

可以检查一下本地的共享目录

$ showmount -e localhost
Export list for localhost:
/data 192.168.165.0/24

在这里插入图片描述

这样,服务端就配置好了,接下来配置客户端,连接服务端,使用共享目录。

Linux 客户端

客户端安装

与服务端类似

$ sudo yum install nfs-utils

客户端配置

设置 rpcbind 服务的开机启动

$ sudo systemctl enable rpcbind

启动 NFS 服务

$ sudo systemctl start rpcbind

在这里插入图片描述

注意: 客户端不需要打开防火墙,因为客户端是发出请求方,网络能连接到服务端即可。客户端也不需要开启 NFS 服务,因为不共享目录。

客户端连接 NFS

先查服务端的共享目录

$ showmount -e 192.168.165.200
Export list for 192.168.165.200:
/data 192.168.165.0/24

在这里插入图片描述

在客户端创建目录

$ sudo mkdir /data

在这里插入图片描述

挂载

$ sudo mount -t nfs 192.168.165.200:/data /data

挂载之后,可以使用 mount 命令查看一下

$ mount
...
...
192.168.165.200:/data on /data type nfs4 (rw,relatime,sync,vers=4.1,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.165.202,local_lock=none,addr=192.168.165.200)

这说明已经挂载成功了。
在这里插入图片描述

测试 NFS

测试一下,在客户端向共享目录创建一个文件

$ cd /data
$ sudo touch a

在这里插入图片描述
之后去 NFS 服务端 192.168.165.200 查看一下

$ cd /data
$ ll
total 0
-rw-r--r--. 1 root root 0 Aug  8 18:46 a

在这里插入图片描述
可以看到,共享目录已经写入了。

客户端自动挂载

自动挂载很常用,客户端设置一下即可。

$ sudo vi /etc/fstab

在结尾添加类似如下配置

#
# /etc/fstab
# Created by anaconda on Thu May 25 13:11:52 2017
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/cl-root     /                       xfs     defaults        0 0
UUID=414ee961-c1cb-4715-b321-241dbe2e9a32 /boot                   xfs     defaults        0 0
/dev/mapper/cl-home     /home                   xfs     defaults        0 0
/dev/mapper/cl-swap     swap                    swap    defaults        0 0
192.168.165.200:/data   /data                   nfs     defaults        0 0

由于修改了 /etc/fstab,需要重新加载 systemctl。

$ sudo systemctl daemon-reload

之后查看一下

$ mount
...
...
192.168.165.200:/data on /data type nfs4 (rw,relatime,vers=4.1,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.165.202,local_lock=none,addr=192.168.165.200)

此时已经启动好了。如果实在不放心,可以重启一下客户端的操作系统,之后再查看一下。

参考连接:https://qizhanming.com/blog/2018/08/08/how-to-install-nfs-on-centos-7


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

相关文章:

  • WebSocket实战,后台修改订单状态,前台实现数据变更,提供前端和后端多种语言
  • WebRTC视频 02 - 视频采集类 VideoCaptureModule
  • 任意文件下载漏洞
  • Python Excel XLS或XLSX转PDF详解:七大实用转换设置
  • LeetCode题解:18.四数之和【Python题解超详细】,三数之和 vs. 四数之和
  • 如何利用SAP低代码平台快速构建企业级应用?
  • [Doc][px4][ros2][gazebo][yolov8]PX4-ROS2-Gazebo-YOLOv8
  • 数据仓库系列10:如何处理维度表中的变化类型?
  • Shell 脚本入门指南
  • 深度学习100问24:什么是语言模型
  • 基于混沌麻雀搜索算法的光伏MPPT控制MATLAB仿真
  • 文章_Linux运维_在非docker环境中编译安装docker
  • java 二级列表 stream流实现
  • 力扣经典题目之->另一颗树的子树(subRoot是否是root的子树)
  • 【STM32 Blue Pill编程】-ADC数据采样(轮询、中断和DMA模式)
  • Linux使用openssl生成ssl证书
  • 游戏设计师:创造虚拟世界的艺术家
  • 江协科技stm32————10-1 I2C通信协议
  • 【C语言必学知识点六】自定义类型——结构体
  • 芯旺微,车规级32位MCU KF32A芯片简介
  • 内存管理篇-14kmalloc机制实现分析
  • SpringBoot整合积木报表
  • 14 大模型微调-KitTrain
  • OpenGL/GLUT实践:绘制旋转的立方体与雪人世界——添加光照与SOIL方式添加纹理(电子科技大学信软图形与动画Ⅱ实验)
  • Linux中如何查看一个进程?如何杀死一个进程?如何查看某个端口有没有被占用?
  • 【Python报错已解决】`TypeError: ‘numpy.ndarray‘ object is not callable`