nfs主机关闭后,客户端df -h卡死如何处理

发布时间 2023-12-27 11:18:38作者: ritchy

卡死
[root@test ~]# df -h
^C

直接卸载出现busy
[root@localhost /]# umount /data1/img
umount: /data1/img: device is busy
umount: /data1/img: device is busy

无永久挂载
[root@test ~]# cat /etc/fstab

[root@test ~]# history | grep nfs
531 mount 192.168.179.20:/nfs /nfs20

强制卸载
[root@test ~]# umount -lf /nfs20

恢复正常
[root@test ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 63G 0 63G 0% /dev
tmpfs 63G 0 63G 0% /dev/shm
tmpfs 63G 18M 63G 1% /run
tmpfs 63G 0 63G 0% /sys/fs/cgroup
/dev/mapper/ol-root 195G 43G 153G 22% /
/dev/sda1 1014M 212M 803M 21% /boot
/dev/mapper/data-lv_data 4.0T 2.2T 1.9T 55% /data
tmpfs 13G 12K 13G 1% /run/user/42
tmpfs 13G 0 13G 0% /run/user/0
[root@test ~]#

------------------------------------
简介
NFS基于TCP/IP传输的网络文件系统协议,未加密,分布式,使用客户端IP地址或主机名来限制客户端对服务器的访问,网络共享远程目录。无用户认证机制,网络上明文传输、安全性很差,所以一般只能在局域网中使用。
实现
依赖RPC(Remote Process Call 远程过程调用 端口111)机制
特点
TCP/IP传输网络文件
安全性低
简单易操作
适合局域网环境
测试
rpm -q rpcbind
rpm -q nfs-utils
yum -y install rpcbind nfs-utils

配置
mkdir nfs_data
vi /etc/exports
nfs_data 192.168.10.0/24 (rw,sync,no_root_squash)
共享的目录
哪些可以看
rw 访问用户有读写权限
ro 只读
sync 同步写入到内存和硬盘
no_root_squash 客户机以root身份访问赋予本地root权限(默认root_squash),如果不加则客户机无法编辑写入文件,因为默认以nfsnobody的权限
root_squash 客户机用root访问该共享目录时将root用户映射成匿名用户

服务和端口
nfs 需要依赖rpc ,所以开启时需要先开启rpcbind服务
开启服务和自启
systemctl start rpcbind
systemctl enable rpcbind

systemctl start nfs
systemctl enable nfs
查端口
netstat -natp | grep rpcbind
nmap -sT 192.168.10.100
查共享结果
exportfs -v
exportfs -r
show
showmount -e localhost

客户机挂载
mount 192.168.10.100:/nfs_data /data
永久挂载
192.168.10.100:/nfs_data /data nfs default,net_dev 0 0
永久挂载需要重新刷新 mount -a

强制卸载如果NFS服务挂掉,客户端df -Th就会卡死,这时无法umount,需要加 -lf才行
如果卡,就重新打开一个终端再卸载,-l 解除正在繁忙的文件系统,-f强制。也可以使用lsof找到进程号用kill -9
umount -lf /data

以上转自
Linux的nfs服务
https://blog.csdn.net/m0_71521555/article/details/125904597