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 及身份有关。sql

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

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

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

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

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

客户端设置
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 suppliedcode

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

[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_64sqlite

遂对当前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仍是不少锅,但愿明天备份正常进行。

相关文章
相关标签/搜索