1 NFS的简介
1)NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。
2)以下是NFS最显而易见的好处:
1. 节省本地存储空间,将常用的数据存放在一台NFS服务器上且可以通过网络访问,那么本地终端将可以减少自身存储空间的使用。
2. 用户不需要在网络中的每个机器上都建有Home目录,Home目录可以放在NFS服务器上且可以在网络上被访问使用。
3. 一些存储设备如软驱、CDROM和Zip(一种高储存密度的磁盘驱动器与磁盘)等都可以在网络上被别的机器使用。这可以减少整个网络上可移动介质设备的数量。
3)NFS在企业中的应用场景
企业集群架构中,NFS网络文件系统一般用来存储共享的视频、图片、附件等静态资源,一般把网站用户上传的文件都放到NFS共享里,例如图片、附j件、头像,然后前端所有的节点访问这些静态资源时都会读取NFS存储上的资源。NFS是当前互联网系统架构中最常用的数据存储服务之一,特别是中小型网站公司应用频率更高。大公司除了使用NFS外,还可能使用更为复杂的分布式文件系统Moosefs,glusterfs,FastDFS等。
2 NFS配置
1 首先安装两个重要的软件:
(1)NFS主程序nfs-utils(再启动任何一个RPC服务前,我们都要启动rpc-bind才行!)
(2)RPC主程序:RPCbind
注意:启动和调用NFS服务程序进行文件共享之前,需要使用rpc服务将nfs服务器的ip地址与端口号信息发给client。应此在启用nfs服务之前,还要顺带并启用rpcbind服务程序,并将这两个服务一并加入到开机启动中。
RPC工作原理:

NFS 流程原理:

2 环境准备:
实验前的配置:
1.desktop:改ip 100 改主机名 server.westos.com
写本地解析 172.25.60.200 client.westos.com
配置yum源可用
1.server:改ip 200 改主机名 client.westos.com
写本地解析 172.25.60.100 client.westos.com
配置yum源可用


3 nfs的配置与实现
*)服务端(172.25.60.100):
desktop虚拟机:
yum install nfs-utils
配置文件所在:vim /etc/exports
配置文件书写规则:
/mnt 172.25.60.0/24(ro,sync)
sync表示硬盘和内存中的数据时时同步
async 不同步
systemctl start nfs-server
systemctl stop firewalld
刷新:exportfs -rv 不重启,直接使用命令刷新

配置防火墙·与服务开机自启动:

*)客户端(172.25.60.200)
server虚拟机:
yum install nfs-utils -y
发现共享出来的文件:
showmount -e 172.25.60.100
使用共享出来的目录:
mount 172.25.60.100:/mnt /mnt 现在操作的就是服务器的/mnt目录,直接对服务器该目录进行操作
df 查看挂载
umont /mnt 卸载
使用async会执行的很快

查看是否有nfs服务:

3.nfs常用参数的修改
*) 修改/mnt 172.25.60.0/24(rw,sync)
当改为rw,说明服务允许进行可写,但是服务器文件系统也会拒绝
需要chmod 777 /mnt/
然后当在客户端挂载进行写的时候,发现可以建立
在服务器上ls -l file 使用nfsnobody身份


*)建立文件使用的身份修改
服务器第一步:useradd westos
id westos 发现是uid=gid=1001
服务器第二步:/mnt 172.25.60.0/24(rw,sync,anonuid=1001,anongid=1001) 使用服务端的uid和gid建立用户
expostfs -rv
客户端:touch file1
ls -l 因为没有westos用户,uid和gid都会以数字显示出来
*)建立的文件都客户端当前用户的身份
当前是谁建立的文件,文件就属于谁
服务器第一步:/mnt 172.25.60.0/24(rw,sync,anonuid=1001,anongid=1001,no_root_squash)
客户端第二步:当前是student用户,建立的文件就属于student
当在客户端添加用户hahaha,该用户的uid=gid=1001,和服务端的westos一样
在客户端使用hahaha建立文件,在客户端查看的时候是hahaha
在服务端查看的时候是westos, 因为二者的uid和gid都一样

*)建立的文件都统一使用指定的用户身份
服务器第一步:/mnt 172.25.60.0/24(rw,sync,anonuid=1001,anongid=1001,no_root_squash,all_squash)
客户端第二步:当使用root建立文件时,查看文件权限,发现属于hahaha,因为hahaha的uid=gid=1001
在服务端查看建立的文件,属于westos
########################################
若是root_squash 会使用服务器上的身份
若是no_root_squash 会使用客户端的身份
参数没有前后顺序
no_root_squash 参数和all_squash同时存在时,没有书写前后顺序,all_squash权限高
*)设置客户端自动挂载 我使用的时候就自动挂载,不使用的时候就自动卸载
在客户端:yum install autofs -y
systemctl start autofs
systemctl enable autofs
会自动生成/net目录,进入该目录
cd /net
cd 172.25.60.100
ls 存在共享出来的目录
cd mnt
会看到所有建立的文件,并且已经挂载
卸载: cd ~
默认等待300s会自动卸载
rpm -qc autofs 查看一下配置文件所在
修改vim /etc/autofs.conf中timeout参数,可以修改卸载的时间
systemctl restart autofs.service
客户端实现自动挂载,安装软件autofs:

查看autofs配置文件,并进入目录:

最后验证自动挂载功能:


nfs挂载指定目录:
*)指定挂载目录为/mnt/westos
1.客户端:vim /etc/auto.master 写上层挂载目录(/mnt)
/mnt /etc/auto.nfs (该文件为最终挂载文件)
vim /etc/auto.nfs
westos 172.25.60.100:/mnt
systemctl restart autofs.service
测试:cd /mnt
ls
cd westos
df 会发现已经挂载
挂载的时候有默认挂载策略
2.重新设置挂载策略:
第一种:mount -o vers=3,ro 172.25.60.100:/mnt /media
mount 查看挂载策略
第二种:vim /etc/auto.nfs
westos -ro,vers=3 172.25.60.100:/mnt
systemctl restart autofs.service
3.想要/mnt/westos1 挂载到/mnt/westos1
/mnt/westos2 挂载到/mnt/westos2
/mnt/westos3 挂载到/mnt/westos3
服务端:cd /mnt
mkdir westos{1..3}
客户端:showmount -e 172.25.60.100
在cd /mnt/westos 下可以看到建立的westos1,2,3
vim /etc/auto.nfs
* -ro,vers=3 172.25.60.100:/mnt/& 进入服务端的/mnt下的&指定名字的目录就相当于将/mnt下的该目录挂载到服务端/mnt/&目录 进入的那个目录必须是服务端/mnt下有的那个目录,若是没有的话先在服务端建立出来,在客户端上就可以进入及挂载了
这条命令达到的效果就是在客户端cd /mnt/westos1 就相当于将/mnt/westos1 挂载到172.25.60.100:/mnt/westos1
systemctl restart autofs.service



重新设置挂载策略:


`


本文介绍了NFS(Network File System)的概念及其优势,包括节省本地存储空间、统一用户Home目录和网络资源共享。NFS在企业集群架构中用于存储静态资源,常用于中小型网站。接着详细讲解了NFS的配置步骤,包括安装nfs-utils和RPCbind,启动rpcbind服务,配置防火墙和服务开机自启动,并在服务端和客户端进行了操作演示,如设置自动挂载等。
1227

被折叠的 条评论
为什么被折叠?



