- 1. NFS 服务的安装
- 启动完毕后,会生成 /net 目录,此目录下没有任何东西。
#进入 /net/加NFS主机的IP 然后可以看到默认共享的目录,
#进入目录后,将会自动进行挂载操 作并将其作为挂载点
[root@client ~]# cd /net/172.25.151.150/nfsshare/ - 当挂载设备闲置后,默认是在300s后将其卸载,可以通过编辑配置文件对此时间进行修改
#编辑 /etc/sysconfig/autofs 对第 13 行进行修改
[root@client ~]# vim /etc/sysconfig/autofs
编辑第 13 行:
13 TIMEOUT=5 规定了默认卸载时间,单位为 s (秒)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
执行如下:
直接进入对应目录,自动挂载
编辑配置文件,修改自动卸载时间
未执行卸载操作,只要系统不再以任何方式访问共享目录 5 秒后自动卸载 - df -h无响应问题解决
NFS(Network File System)网络文件系统
服务可以将远程 Linux 系统上的文件共享资源挂载到本地主机的目录上,从而使得本地主机(Linux 客户端)基于 TCP/IP 协议,像使用本地主机上的资源那样读写远程 Linux 系统上的共享文件。
1. NFS 服务的安装
在 NFS 客户端,服务端都进行安装
[root@server ~]# yum install nfs-utils.x86_64# nfs 服务安装[root@server ~]# systemctl start nfs-server# nfs 服务启动[root@server ~]# systemctl enable nfs-server# nfs 服务开机自启
注意关闭服务端与客户端的防火墙
NFS 服务程序的配置文件为 /etc/exports,默认情况下里面没有任何内容。我们可以按照“共享目录的路径 允许访问的 NFS 客户端(共享权限参数)”的格式,定义要共享的目录与相应的权限。
**
NFS 服务程序配置文件的参数如下
| 参数 | 作用 |
|---|---|
| ro | 只读 |
| rw | 读写 |
| root_squash | 当 NFS 客户端以 root 管理员访问时,映射为 NFS 服务器的匿名用户 |
| no_root_squash | 当 NFS 客户端以 root 管理员访问时,映射为 NFS 服务器的 root 管理员 |
| all_squash | 无论 NFS 客户端使用什么账户访问,均映射为 NFS 服务器的匿名用户 |
| sync | 同时将数据写入到内存与硬盘中,保证不丢失数据 |
| async | 优先将数据保存到内存,然后再写入硬盘;这样效率更高,但可能会丢失数据 |
2.1 建立 nfs 共享目录
[root@server ~]# mkdir /nfsshare# 建立共享目录[root@server ~]# chmod 777 /nfsshare/# 修改目录权限,让所有人可以访问
在服务端编辑主配置文件 /etc/exports
[root@server ~]# vim /etc/exports #编辑配置文件内容如下:1 /mnt *(sync,rw,anonuid=1001,anongid=1001)#共享目录 对所有用户共享(同步数据,读写权限,指定用户ID,组ID'如建立的文件属于此用户')2 /nfsshare 172.25.151.0/24(sync) 172.25.151.50(sync,rw)#共享目录 对此网段的共享(数据同步)对此 IP 进行共享(数据同步,读写)编辑完成后执行:exportfs -rv 进行刷新exportfs #维护导出的NFS文件系统的表-r #重新导出所有目录-v #示导出选项列表
执行如下:
编辑配置文件

进行列表刷新

在客户端进行使用
**
[root@client ~]# showmount#显示NFS服务器的挂载信息-e #显示 NFS 服务器的共享列表-a #显示本机挂载的文件资源的情况-v #显示版本号#查看 10.6.206.184 主机的 NFS 共享目录列表[root@tlzhghfilet ~]# showmount -e 10.6.206.184Export list for 10.6.206.184:/nfs/share/upFiles */data/share 10.6.206.0/24[root@client ~]# mount 172.25.151.150:/nfsshare /mnt#执行此命令进行挂载使用将172.25.151.150 下的共享目录 /nfsshare 挂载到客户端的 /mnt 下使用
执行如下:
执行 showmount -e IP 查看对应主机的共享目录信息

在IP为 172.25.151.50 客户端进行挂载使用,在配置文件中赋予的权限为 rw
在IP为 172.25.151.250 客户端进行挂载使用,在配置文件中赋予的权限为 ro
注:将172.25.151.150 ,即 nfs 服务器下的 /mnt 目录进行挂载使用,在配置文件中所指定的‘anonuid=1001,anongid=1001’意味着,在客户端进行操作后的用户 id 为1001
示例如下:
将挂载信息填入/etc/fstab 文件后,系统在每次开机时都自动将其挂载,
而 autofs 服务程序则是在用户需要使用该文件系统时才去动态挂载,从而节约了网络资源和
服务器的硬件资源。
- autofs 自动挂载服务
无论是 Samba 服务还是 NFS 服务,都要把挂载信息写入到/etc/fstab 中,这样远程共享资源就会自动随服务器开机而进行挂载。虽然这很方便,但是如果挂载的远程资源太多,则会给网络带宽和服务器的硬件资源带来很大负载。如果在资源挂载后长期不使用,也会造成服务器硬件资源的浪费
autofs 服务程序是一种 Linux 系统守护进程,当检测到用户视图访问一个尚未挂载的文件系统时,将自动挂载该文件系统。autofs 服务程序则是在用户需要使用该文件系统时才去动态挂载,从而节约了网络资源和服务器的硬件资源。
进行服务的安装及使用
[root@client ~]# yum install autofs.x86_64 -y #进行安装
[root@client ~]# systemctl start autofs #开启服务
[root@client ~]# systemctl enable autofs #开机自启
启动完毕后,会生成 /net 目录,此目录下没有任何东西。
#进入 /net/加NFS主机的IP 然后可以看到默认共享的目录,
#进入目录后,将会自动进行挂载操 作并将其作为挂载点
[root@client ~]# cd /net/172.25.151.150/nfsshare/
当挂载设备闲置后,默认是在300s后将其卸载,可以通过编辑配置文件对此时间进行修改
#编辑 /etc/sysconfig/autofs 对第 13 行进行修改
[root@client ~]# vim /etc/sysconfig/autofs
编辑第 13 行:
13 TIMEOUT=5 规定了默认卸载时间,单位为 s (秒)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
执行如下:
直接进入对应目录,自动挂载
编辑配置文件,修改自动卸载时间
未执行卸载操作,只要系统不再以任何方式访问共享目录 5 秒后自动卸载
使用 autofs 进行挂载目录以及挂载类型的指定
/etc/auto.master 此处定义最终挂载点的上层目录
/etc/auso.test 此处定义最终挂载点(此文件自己创建)
编辑 /etc/auto.master
[root@client ~]# vim /etc/auto.master
在第 7 行后添加
9 /nfs /etc/auto.test
其中/nfs #最终挂载点的上层目录
/etc/auto.test 子配置目录
建立并编辑 /etc/auto.test 对最终挂载点,挂载方式以及挂载设备进行确认
[root@client ~]# vim /etc/auto.test
内容如下:
1 test -ro 172.25.151.150:/nfsshare
其中 test 最终挂载点
-ro 只读挂载
172.25.254.239:/nfsshare 设备
重启服务后 进入 /nfs/test
[root@client ~]# cd /nfs/test
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
执行如下:
编辑配置文件:
/etc/auto.master
/etc/auto.test
进入目录(/nfs/test)进行查看
df -h无响应问题解决
、问题描述
1、linux下执行df -h 查看已挂在各分区的空间和目录情况,但执行后无反馈
二、影响
1、由于脚本程序调用df -h 判断磁盘空间情况进行日志等清理,故障导致磁盘空间占满不能清理,服务器不能访问。
三、问题分析
1、df -h和分区挂载有关,命令 mount 查看挂载情况发现以下问题
11.10.127.83:/www/repo/uploads on /etc/yum.repos.d type nfs4 (rw,relatime,vers=4.0,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=11.10.127.82,local_lock=none,addr=11.10.127.83)
因为上午刚对11.10.127.83做了防火墙策略阻止了该服务器nfs服务远程挂载的访问,df -h 读取不到挂在点的信息。
四、问题就解决
1、
umount -f 11.10.127.83:/www/repo/uploads 立即解决
否则用umount -l 看看是否可以解决
干脆 umount -fl 11.10.127.83:/www/repo/uploads
-f 强制卸载(在无响应的NFS系统的情况下)
-l 隔离文件系统后,全部清除
2、
对11.10.127.83 调整防火墙策略允许该服务器访问
3、
脚本程序可写成 df -hl
