- 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.184
Export 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