Linux(1)—— NFS服务器

  • 前言
  • NFS服务器
  • 简介
  • 环境准备
  • 搭建原理
  • 部署
  • 提升


前言

许久没见,前阵子一直在忙跟学习,没有来得及更新博客(偷懒找借口)实属不该。而自己在往下一个阶段跳跃中,更关心应用层面的知识,所以今天就来聊聊Linux服务器中的NFS网络文件系统服务器,NFS应用层面很广,在Kubernetes数据持久化领域里也占着举足轻重的位置

NFS服务器

简介

NFS就是Network File System网络文件系统,他可以通过网络,让不同的机器、不同的操作系统共享彼此的文件,也可以单纯地将其视作文件服务器。NFS服务器可以让同一个网络内的主机的目录挂载到Server端共享的目录上以实现文件共享

环境准备

准备两台服务器,一台当服务端一台当客户端

192.168.2.21 ——heetok.learning.com

192.168.2.200 ——heetok2.learning.com

搭建原理

在server主机上创建test文件夹进行文件共享,在client主机上安装NFS客户端,同时也创建测试文件夹test,再通过网络将server主机上的test文件夹暴露出来,后client主机将自己的test文件夹通过网络挂载到server主机上的test文件夹,实现文件夹共享

部署

在所有节点上安装nfs-utils和rpcbind
yum install -y nfs-utils rpcbind

开启nfs服务并设置其开机自启动
systemctl enable rpcbind
systemctl enable nfs-server
systemctl start rpcbind
systemctl start nfs-server

确认nfs启动成功
rpcinfo -p

linux nfs客户端非root用户读写_子目录

创建/root/nfs文件夹(All nodes)

mkdir -p /root/nfs

修改主机暴露配置文件(server)

echo ‘/root/nfs *(rw,sync,no_root_squash)’ >> /etc/exports

查看可挂载点(client)

showmount -e 192.168.2.21

linux nfs客户端非root用户读写_linux_02

#此处关闭firewalld,否则无法看到挂载点

挂载(node)

linux nfs客户端非root用户读写_子目录_03

linux nfs客户端非root用户读写_子目录_04

取消挂载

umount /root/nfs

提升

如上所述,在使用NFS过程中还有很多问题:

1、rpc.mountd和rpc.rquotad等服务开启的端口除了111、2049外还有很多不确定的端口,那么在需开启防火墙的情况下无法确定开启的端口,此时可以通过修改/etc/sysconfig/nfs文件里面的值进行端口的限定

linux nfs客户端非root用户读写_服务器_05

2、重启服务器

重启服务器nfs挂载失效,因此将其写入自动挂载文件/etc/fstab里

linux nfs客户端非root用户读写_子目录_06

3、exports文件详解

linux nfs客户端非root用户读写_服务器_07

文件主要分成三列:

第一列:NFS服务端共享出去的文件目录

第二列:可访问主机,此处设置是*,即是接受所有网络可达的主机访问

第三列:共享参数,以下是参数详情:

参数

作用

ro

只读访问

rw

读写访问

sync

所有数据在请求时写入共享

async

NFS在写入数据前可以响应请求

secure

NFS通过1024以下的安全TCP/IP端口发送

insecure

NFS通过1024以上的端口发送

wdelay

如果有多个用户要写入NFS目录,则归组写入(默认)

no_wdelay

如果多个用户要写入NFS目录,则立即写入,当使用async时无需设置

hide

在NFS共享目录文件夹时不共享子目录

no_hide

在NFS共享目录文件夹时共享子目录

subtree_check

强制检查NFS父目录的权限

no_subtree_check

不强制检查父目录的权限

all_squash

共享文件的UID和GID映射匿名用户anonymous,适合公用目录

no_all_squash

保留共享文件夹的UID和GID

root_squas

root用户的所有请求映射成如anonymous用户一样的权限

no_root_squas

root用户具有根目录的完全管理访问权限

anonuid

指定NFS服务器/etc/passwd文件中匿名用户的UID

anougid

匿名用户的GID值

如有不妥,敬请指正~