RHEL7.2做NFS服务器之-BUG

RHEL7.2 Server做NFS服务,
1,yum -y install nfs-utils rpcbind
2,mkdir -p /u01/dbbackupset/10.2.21.337_tradb
3,cat /etc/exports
/u01/dbbackupset/10.1.21.437_tradb 10.1.21.437(rw,sync,no_root_squash)
参数值 内容说明
rw  ro 该目录分享的权限是可擦写 (read-write) 或只读 (read-only),但最终能不能读写,还是与文件系统的 rwx 及身份有关。

sync  async sync 代表数据会同步写入到内存与硬盘中,async 则代表数据会先暂存于内存当中,而非直接写入硬盘!

no_root_squash  root_squash 客户端使用 NFS 文件系统的账号若为 root 时,系统该如何判断这个账号的身份?预设的情况下,客户端 root 的身份会由 root_squash 的设定压缩成 nfsnobody, 如此对服务器的系统会较有保障。但如果你想要开放客户端使用 root 身份来操作服务器的文件系统,那么这里就得要开 no_root_squash 才行!

all_squash 不论登入 NFS 的使用者身份为何, 他的身份都会被压缩成为匿名用户,通常也就是 nobody(nfsnobody) 啦!

anonuid  anongid anon 意指 anonymous (匿名者) 前面关于 *_squash 提到的匿名用户的 UID 设定值,通常为 nobody(nfsnobody),但是你可以自行设定这个 UID 的值!当然,这个 UID 必需要存在于你的 /etc/passwd 当中! anonuid 指的是 UID 而 anongid 则是群组的 GID 啰。

4,exportfs -r
5,systemctl start nfs-server
systemctl start rpcbind

客户端设置
1,yum -y install nfs-utils
2,mkdir -p /home/oracle/nfs
3,mount -t nfs 10.1.21.388:/u01/dbbackupset/10.1.21.437_tradb /home/oracle/nfs
4,df -h
5,showmount -e 10.1.21.388

但是最近几天发现备份有异常,备份集未能正常产生,备份是好几天前的。。。。
查看messages日志
[root@reco yum.repos.d]# cat /var/log/messages |grep -i nfs
Dec 23 12:30:10 reco nfsdcltrack[158892]: sqlite_insert_client: insert statement prepare failed: table clients has 2 columns but 3 values were supplied
Dec 24 12:30:11 reco nfsdcltrack[98236]: sqlite_insert_client: insert statement prepare failed: table clients has 2 columns but 3 values were supplied
Dec 25 12:30:11 reco nfsdcltrack[37515]: sqlite_insert_client: insert statement prepare failed: table clients has 2 columns but 3 values were supplied
Dec 26 12:20:10 reco nfsdcltrack[172228]: sqlite_insert_client: insert statement prepare failed: table clients has 2 columns but 3 values were supplied
Dec 26 12:30:12 reco nfsdcltrack[173152]: sqlite_insert_client: insert statement prepare failed: table clients has 2 columns but 3 values were supplied
Dec 26 21:03:02 reco nfsdcltrack[25152]: sqlite_insert_client: insert statement prepare failed: table clients has 2 columns but 3 values were supplied
Dec 26 21:05:53 reco nfsdcltrack[25341]: sqlite_insert_client: insert statement prepare failed: table clients has 2 columns but 3 values were supplied

然后在客户端发现目录已经掉了,以为手工mount一次就好,第二天现象重现
经过一系列的排查发现应该是nfs的bug所致,RHEL7.2中关于nfs 1.3.0-0.21.el7
https://bugzilla.redhat.com/show_bug.cgi?id=1285097

[root@reco dbbackupset]# uname -a
Linux reco 3.8.13-98.7.1.el7uek.x86_64 #2 SMP Wed Nov 25 13:51:41 PST 2015 x86_64 x86_64 x86_64 GNU/Linux
[root@reco dbbackupset]# more /etc/redhat-release
Red Hat Enterprise Linux Server release 7.2 (Maipo)
[root@reco dbbackupset]# rpm -qa|grep nfs
libnfsidmap-0.25-12.el7.x86_64
nfs-utils-1.3.0-0.21.el7.x86_64

遂对当前NFS服务器进行升级操作
[root@reco yum.repos.d]# yum install nfs-utils
[root@reco yum.repos.d]# rpm -qa | grep nfs
nfs-utils-1.3.0-0.61.el7.x86_64
libnfsidmap-0.25-12.el7.x86_64

目标端的服务升级,客户端想重启一下rpc服务,我们先看一下rpc服务的状态。
[root@acdb1 ~]# systemctl status rpcbind
● rpcbind.service - RPC bind service
Loaded: loaded (/usr/lib/systemd/system/rpcbind.service; indirect; vendor preset: enabled)
Active: inactive (dead)

居然已经挂掉了

[root@acdb1 ~]# systemctl start rpcbind
You have new mail in /var/spool/mail/root
[root@acdb1 ~]# systemctl status rpcbind
● rpcbind.service - RPC bind service
Loaded: loaded (/usr/lib/systemd/system/rpcbind.service; indirect; vendor preset: enabled)
Active: active (running) since Thu 2018-12-27 10:55:26 CST; 3s ago
Process: 160478 ExecStart=/sbin/rpcbind -w ${RPCBIND_ARGS} (code=exited, status=0/SUCCESS)
Main PID: 160479 (rpcbind)
CGroup: /system.slice/rpcbind.service
└─160479 /sbin/rpcbind -w

Dec 27 10:55:26 acdb1 systemd[1]: Starting RPC bind service...
Dec 27 10:55:26 acdb1 systemd[1]: Started RPC bind service.
[root@acdb1 ~]# showmount -e 10.1.11.188
Export list for 10.1.21.388:
/u01/dbbackupset/10.1.21.369_acdb 10.1.21.369

貌似问题得以解决,NFS还是很多锅,希望明天备份正常进行。

转载于:https://blog.51cto.com/yangjunfeng/2335974

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值