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
创建/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
#此处关闭firewalld,否则无法看到挂载点
挂载(node)
取消挂载
umount /root/nfs
提升
如上所述,在使用NFS过程中还有很多问题:
1、rpc.mountd和rpc.rquotad等服务开启的端口除了111、2049外还有很多不确定的端口,那么在需开启防火墙的情况下无法确定开启的端口,此时可以通过修改/etc/sysconfig/nfs文件里面的值进行端口的限定
2、重启服务器
重启服务器nfs挂载失效,因此将其写入自动挂载文件/etc/fstab里
3、exports文件详解
文件主要分成三列:
第一列: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值 |
如有不妥,敬请指正~