nfs服务器

一、NFS服务器

1、NFS服务:

NFS( Network File System ,网络文件系统)是 FreeBSD 支持的文件系统中的一种,它允许网络中的计算机(不同的计算机、不同的操作系统)之间通过TCP/IP 网络共享资源,主要在 unix 系列操作系统上使用。
在NFS的应用中,本地 NFS 的客户端应用可以透明地读写位于远端 NFS 服务器上的文件,就像访问本地文件一样。 NFS服务器可以让 PC 将网络中的 NFS 服务器共享的目录挂载到本地端的文件系统中,而在本地端的系统中看来,那个远程主机的目录就好像是自己的一个磁盘分区一样。
由于NFS 支持的功能比较多,而不同的功能都会使用不同的程序来启动,每启动一个功能就会启用一些端口来传输数据,因此NFS 的功能所对应的端口并不固定,而是随机取用一些未被使用的小于 1024 的端口用于传输。 如此一来就会产生客户端连接服务器的问题,因为客户端需要知道服务器端的相关端口才能够连接。
此时就需要RPC (Remote Procedure Call ,远程过程调用)的服务

2、PRC服务:

由于当服务器在启动NFS 时会随机选取数个端口号,并主动向RPC 注册,所以 RPC 知道每个 NFS 功能所对应的端口号, RPC将端口号通知给客户端,让客户端可以连接到正确的端口。
RPC采用固定端口号port 111 来监听客户端的需求并向客户端响应正确的端口号。
**注:**在启动 NFS 之前,要先启动 RPC ,否则 NFS 会无法向 RPC 注册。另外, RPC 若重新启动,原来注册的数据会消失不见,因此RPC 重启后,它管理的所有服务都需要重新启动以重新向 RPC 注册。

二、NFS配置

复制代码
#下载nfs相关包
[root@localhost ~]# yum install rpcbind
[root@localhost ~]# yum install nfs-utils
 
#相关文件
/etc/exports 主配置文件(文件不一定存在)
/usr/sbin/showmount 该命令主要用在client端。这个命令可以查看NFS共享出来的目录资源

共享文件:

服务端:
复制代码
[root@server data]# mkdir /data
 
#server 给了 192.168.168.140 /data 目录的读写权限
[root@server data]# cat /etc/exports
/data 192.168.168.140(rw)
#共享目录 主机名(权限)
#可以使用完整的IP或者是网络号,例如172.24.8.128或172.24.8.0/24或者
172.24.8.128/255.255.255.0;也可以使用*表示所有主机
 
#添加权限
[root@server data]# chmod o+w /data/
#关闭防火墙和selinux
[root@server data]# systemctl disable firewalld --now
[root@server data]# getenforce
Enforcing
[root@server data]# setenforce 0
#重启服务
[root@server data]# systemctl restart nfs-server
#用showmount -e 查看nfs共享的相关文件
[root@server data]# showmount -e 192.168.168.128
Export list for 192.168.168.128:
/data 192.168.168.140
客户端:
复制代码
#客户端(192.168.168.140)
[root@client ~]# showmount -e 192.168.168.128
Export list for 192.168.168.128:
/data 192.168.168.140
[root@client ~]# mkdir -p /nfsclient/client-data/
[root@client ~]# mount 192.168.168.128:/data /nfsclient/client-data/
[root@client ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 898M 0 898M 0% /dev
tmpfs 910M 0 910M 0% /dev/shm
tmpfs 910M 9.6M 901M 2% /run
tmpfs 910M 0 910M 0% /sys/fs/cgroup
/dev/mapper/centos-root 37G 1.8G 36G 5% /
/dev/sda1 1014M 150M 865M 15% /boot
tmpfs 182M 0 182M 0% /run/user/0
192.168.168.128:/data 40G 6.2G 34G 16% /nfsclient/client-data

权限相关参数(多个参数之间用逗号隔开):

|----------------------------|--------------------------------------------------------------------------------------------------------------------------------------------|
| 参数值 | 说明 |
| rw, ro | 该目录共享的权限是可读写还是只读,但最终能否读写,还是与 文件系统的rwx有关 |
| sync,async | sync代表数据会同步写入到内存与硬盘中,async则代表数据会先暂存于内存当中,而非直接写入硬盘 |
| no_root_squash root_squash | 若客户端在共享目录里创建的文件的所属者和所属组是root用户和root组,那么显示文件的属主和属组时有以下两种情况: no_root_squash表示,文件的所属者和所属组是root用户和root组;root_squash表示将root用户和组映射为匿名用户和组(默认设置)。 |
| all_squash no_all_squash | all_squash:客户端所有用户创建文件时,客户端会将文件的用户 和组映射为匿名用户和组no_all_squash:客户端普通用户创建的 文件的UID和GID是多少,服务端就显示为多少(默认设置) |
| anonuid= anongid= | 将文件的用户和组映射为指定的UID和GID,若不指定默认为65534(nfsnobody) |

三、配置 autofs 自动挂载

在一般NFS 文件系统的使用过程中,如果客户端要使用服务端所提供的文件系统,可在/etc/rc.d/rc.local 中设置开机时自动挂载( /etc/rc.d/rc.local 文件中写入的命令,在每次启动系统用户 登录之前都会执行一次); 也可以在登录系统后手动利用 mount 来挂载。

由于网络的问题,NFS 服务器与客户端的连接不会一直存在,当我们挂载了 NFS 服务器之后,任何一方 脱机都可能造成另外一方等待超时。为了解决这样的问题,就出现了下面的想法:

  • 当客户端在有使用 NFS文件系统的需求时才让系统自动挂载;
  • 当 NFS 文件系统使用完毕后,让 NFS 自动卸载。

于是就产生了autofs 这个服务。

autofs这个服务是在客户端的上面,它会持续的检测某个指定的目录,并预先设置当使用到该目录的某 个子目录时,将会取得来自服务器端的NFS 文件系统资源,并进行自动挂载的操作。

复制代码
#客户端配置autofs
[root@client ~]# yum install autofs -y
[root@client ~]# grep suibian /etc/auto.master
/client /etc/auto.suibian
#本地端目录 具体挂载配置文件
[root@client ~]# cat /etc/auto.suibian
upload 192.168.168.128:/nfs/upload
#本地端子目录 挂载参数 服务器:服务器对应目录
[root@client ~]# systemctl restart autofs
#触发自动挂载
[root@client ~]# cd /client
[root@client ~]# cd upload
相关推荐
大树882 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠2 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质2 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
小宇宙Zz2 天前
Maven依赖冲突
java·服务器·maven
Inhand陈工2 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
酣大智2 天前
ARP代理--工作原理
运维·网络·arp·arp代理
shushangyun_2 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
古城小栈2 天前
Unix 与 Linux 异同小叙
linux·服务器·unix
施努卡机器视觉2 天前
SNK施努卡侧滑门锁上滑轮总成自动化装配线,从零件到组件,全流程精密制造方案
运维·自动化·制造
程序猿阿伟2 天前
《Chrome离线扩展安装的底层逻辑与场景落地指南》
服务器·网络·chrome