Eu resolvi esse problema depois de duas semanas de tentativas de azar, descobri que há um bug no rpc.mountd e tentei instalar uma versão recente do nfs-utils:
yum update nfs-utils
Eu tenho 4 servidores no VirtualBox. Dois dos servidores são um cluster do CentOS 7 com Pacemaker (corosync) e possuem um servidor NFSv4 no modo ativo / passivo. Há também 2 clientes com o CentOS 6, também usando este servidor NFS.
O problema nem sempre ocorre, mas às vezes quando eu faço failover manual ou automaticamente do cluster do servidor NFS ativo, ambos os clientes dão o erro: Permissão negada. O tcpdump
dos clientes mostra:
[17:24:29.271467] IP client.example.net.34236755563 > server.example.net.nfs 112 getattr [|nfs]
[17:24:29.271619] IP server.example.net.nfs > client.example.net.3423675563: reply ERR 24: Auth Bogus Credentials (seal broken)
Até que este problema seja resolvido, nada está funcionando: Eu tentei transferir para o NFSv3, tentei diferentes configurações de cluster, tentei um período de carência para o NFSv4 de 10 a 90 segundos, sem sorte.
Configuração de cluster:
node 1: storage1
node 2: storage2
primitive p_drbd_nfs ocf:linbit:drbd \
params drbd_resource=cgp \
op monitor interval=31s role=Master \
op monitor interval=29s role=Slave \
op start interval=0 timeout=240s \
op stop interval=0 timeout=120s
primitive p_fs_home Filesystem \
params device="/dev/drbd0" directory="/mnt" fstype=xfs options="noatime,nobarrier" \
op monitor interval=10s \
meta is-managed=true
primitive p_ip_nfs IPaddr2 \
params ip=192.168.56.100 cidr_netmask=24 \
op monitor interval=30s \
meta is-managed=true
primitive p_nfs_exports exportfs \
params fsid=0 directory="/mnt" options="rw,async,no_wdelay,mountpoint,insecure,no_subtree_check,no_root_squash" clientspec="192.168.56.0/255.255.255.0" wait_for_leasetime_on_stop=true rmtab_backup=none \
op monitor interval=10s \
op stop interval=0 timeout=120s \
meta is-managed=true
primitive p_nfsserver nfsserver \
params grace_time=90 proc_num=16 \
op monitor interval=30s \
meta is-managed=true
primitive p_ping ocf:pacemaker:ping \
params host_list=192.168.56.1 multiplier=1000 attempts=1 timeout=3 name=p_ping \
op monitor interval=5 timeout=60
ms ms_drbd_nfs p_drbd_nfs \
meta master-max=1 master-node-max=1 clone-max=2 clone-node-max=1 notify=true is-managed=true
clone cl_p_ping p_ping \
meta is-managed=true target-role=Started
location l_0 ms_drbd_nfs \
rule $role=Master -inf: not_defined p_ping or p_ping lte 0
colocation c_1 inf: p_fs_home ms_drbd_nfs:Master
colocation c_2 inf: p_nfsserver p_fs_home
colocation c_3 inf: p_nfs_exports p_nfsserver
colocation c_4 inf: p_ip_nfs p_nfs_exports
order o_1 inf: ms_drbd_nfs:promote p_fs_home:start
order o_2 inf: p_fs_home p_nfsserver
order o_3 inf: p_nfsserver p_nfs_exports
order o_4 inf: p_nfs_exports p_ip_nfs
property cib-bootstrap-options: \
dc-version=1.1.10-32.el7_0.1-368c726 \
cluster-infrastructure=corosync \
stonith-enabled=false \
no-quorum-policy=ignore \
last-lrm-refresh=1428329105
rsc_defaults rsc-options: \
resource-stickiness=200
Aqui está uma string do arquivo fstab do cliente:
192.168.56.100:/ /mnt nfs nfsvers=4,proto=tcp,rsize=32768,wsize=32768,hard,timeo=300,retrans=2,bg,actimeo=3,noatime,nodiratime 0 0
Eu resolvi esse problema depois de duas semanas de tentativas de azar, descobri que há um bug no rpc.mountd e tentei instalar uma versão recente do nfs-utils:
yum update nfs-utils