专栏首页运维监控日志分析CentOS 8 -- 安装并配置NFS服务

CentOS 8 -- 安装并配置NFS服务

NFS

网络文件系统(Network File System)是一种分布式文件系统协议,通过网络共享远程目录。使用NFS,可以在系统上挂载远程目录,并像对待本地文件一样使用远程计算机上的文件。

默认情况下,NFS协议未加密,并且与Samba不同,它不提供用户身份验证。客户端的IP地址或主机名限制了对服务器的访问。

主机清单

HOSTNAME

IP

SYSTEM OS

nfs-server

192.168.99.227

CentOS Linux release 8.1.1911

nfs-client-linux

192.168.99.233

CentOS Linux release 7.6.1810

nfs-client-windows

192.168.99.234

Windows Server 2016 Datacenter

nfs-server

安装 nfs

[root@nfs-server ~]# dnf install nfs-utils

查看 nfs 版本

[root@nfs-server ~]# rpm -qa | grep nfs-utils
.nfs-utils-2.3.3-26.el8.x86_64

开启 nfs 服务

[root@nfs-server /]# systemctl start nfs-server

查看 nfs 支持的版本信息

[root@nfs-server /]# cat   /proc/fs/nfsd/versions -2 +3 +4 +4.1 +4.2

创建 nfs 共享目录

mkdir -p /mnt/{nfs1,nfs2}

/etc/exports 是 nfs 默认的配置文件

nfs1 读写

nfs2 只读

nfs3 只读

[root@nfs-server /]# vim /etc/exports
/mnt/nfs1 192.168.99.0/255.255.255.0(rw,sync,all_squash)
/mnt/nfs2 192.168.99.234(ro,sync,all_squash)
/mnt/nfs3 *(ro,sync,all_squash)

/etc/exports 各项参数说明

rw: 可读写
ro: 只读
no_root_squash:对root用户不压制,如果客户端以root用户写入,在服务端都映射为服务端的root用户
root_squash:nfs服务:默认情况使用的是相反参数root_squash,如果客户端是用户root操作,会被压制成nobody用户
all_squash: 不管客户端的使用nfs的用户是谁,都会压制成nobody用户
insecure: 允许从客户端过来的非授权访问
sync: 数据同步写入到内存和硬盘
async: 数据先写入内存,不直接写入到硬盘
anonuid: 指定uid的值,此uid必须存在于/etc/passwd中
anongid: 指定gid的值

查看当前配置为 nfs 共享的目录及其状态

exportfs 参数

-r: Reexport  all directories:  重新导出所有目录
-v: verbose,输出详情

设置文件夹的权限

chown  -R nobody /mnt/{nfs1,nfs2}

防火墙配置

[root@nfs-server /]#  firewall-cmd  --add-service=nfs --permanent
[root@nfs-server /]#  firewall-cmd  --add-service=rpc-bind --permanent
[root@nfs-server /]#  firewall-cmd  --add-service=mountd --permanent
[root@nfs-server /]#  firewall-cmd  --reload

nfs-client-linux

showmount

使用showmount命令测试NFS服务器的输出目录状态,showmount命令的基本格式为:

showmount [选项] NFS服务器名称或地址

-a:显示指定的NFS服务器的所有客户端主机及其所连接的目录;

-d:显示指定的NFS服务器中已被客户端连接的所有输出目录;

-e:显示指定的NFS服务器上所有输出的共享目录。

[root@kafka-node2 ~]# showmount  -e 192.168.99.227
Export list for 192.168.99.227:
/mnt/nfs2 192.168.99.0/255.255.255.0
/mnt/nfs1 192.168.99.0/255.255.255.0

mount 挂载

mount 服务器名或IP地址:输出目录 本地挂载目录

[root@kafka-node2 /]# mkdir /mnt/data
[root@kafka-node2 /]# mount -t nfs 192.168.99.227:/mnt/nfs1 /mnt/data

umount 卸载

[root@kafka-node2 /]# umount /mnt/data/

nfs-client-windows

安装 NFS 客户端

mount -h 验证客户端是否安装成功

挂载

mount \\192.168.99.227\mnt\nfs1 x:

卸载

umount x:

查看nfs目录

nfs1 读写 nfs2 只读

NFS 服务器 uid/gid 映射

在集群环境中,每台主机相同用户账号,但是分配的uid/gid是不同的。当多主机后端的存储为同一个共享存储,这时就会遇到一个问题,NFS协议是通过uid来控制文件读写权限的,主机中用户写入的文件uid与其他主机不同,就无法被其他主机读取或修改,出现权限错误的问题。

创建用户

useradd  -u 1234 -s /sbin/nologin  -M nfsuser

-u : 指定用户uid

-M: --no-create-home 不创建用户home目录

-s : --shell 指定用户的shell

修改用户id和组id

usermod  -u 1234 nfsusergroupmod -g 1234 nfsuser

创建 nfs 共享目录

mkdir /data/nfschown -R nfsuser:nfsuser /data/nfs

编辑 nfs 配置文件

[root@nfs-server /]# vi /etc/exports
/data/nfs 192.168.99.0/255.225.255.0(rw,sync,all_squash,anonuid=1234,anongid=1234)

本文分享自微信公众号 - 开源搬运工宋师傅(gh_9e345a3a1074),作者:songhp

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-06-17

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • CentOS 8 (二)

    将光标移动 linux 开始的行,添加内核参数 rd.break ,按 ctrl-x 启动进入救援模式

    Kevin song
  • 构建企业级网络设备自动备份系统 -- Oxidized (ubuntu 20.04 LTS)

    Oxidized 0.28.0 测试环境使用 CentOS 7.6 系统 ,缺点是 CentOS 7 系统集成的软件版本太低。Oxidized 需运行在 rub...

    Kevin song
  • OPNSense 构建企业级防火墙--site-to-site network(六)

    OPNsense是一个功能非常丰富强大的开源防火墙及路由平台,本篇文章将介绍如何使用OPNsense 内置 OpenVPN 模块来进行跨区域组网。实现不同地域的...

    Kevin song
  • NFS挂载报错

    nfs共享的时候,无论怎么检查都报错:mount.nfs: access denied by server while mounting

    一夕如环
  • Linux - nfs 服务部署

    配置选项说明: ro #read only rw #read write no_root_sq...

    晴天Online
  • nfs 挂载

    NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。...

    孙杰
  • NFS存储服务部署

    什么是NFS 中文意思是网络文件系统,主要功能是通过网络(一般是局域网)让不同主机之间可以共享文件或目录 NFS属于本地文件存储服务  缺点1: windows...

    863987322
  • nfs v4.0协议下的服务器load升高问题

    在使用nfs v4.0协议挂载nfs文件系统的时候,存在一个seq id序列号瓶颈问题,具体内容请看https://access.redhat.com/solu...

    domain0
  • Redhat设置NFS挂载的简单步骤

    初识 nfs 还是在测试 lvs 负载均衡的时候,为了保证代码的一致性,将一台 Realserver 作为 nfs 服务器,而其他 Realserver 均以 ...

    张戈
  • TKE创建StorageClass配置Provisioner为nfs

    目前TKE的StorageClas 支持qcloud-cbs(云硬盘)类型的,还没有支持到cfs(nfs文件存储

    马凌鑫

扫码关注云+社区

领取腾讯云代金券