我有一个带有 corosync nfs 集群(Ubuntu 18)的起搏器,我正在尝试减少宽限期。
有什么办法可以使这些设置在/etc/default/nfs-kernel-server
起搏器中持久存在吗?
echo '10' > /proc/fs/nfsd/nfsv4leasetime
echo '10' > /proc/fs/nfsd/nfsv4gracetime
echo '10' > /proc/sys/fs/nfs/nlm_grace_period
答案1
谢谢你 Killertjuh,我在阅读 LINBIT HA 指南时亲自问了 Zanna 的问题,然后找到了你的答案https://www.linbit.com/downloads/tech-guides/HA_NFS_storage_with_DRBD_and_Pacemaker.pdf。
我最近不得不处理类似的情况,设置--管理-gids选项,并发现这些设置可以在 /etc/default 中设置,这样就无需修改脚本 /usr/lib/systemd/scripts/nfs-utils_env.sh。这样,您就不会面临脚本将来更新时覆盖该值的风险。
您可以在 /etc/default/nfs-kernel-server 中设置该值:
RPCNFSDOPTS="--lease-time 10 --grace-time 10"
我在 18.04 上测试并验证了这一点。
这可能是基于 systemctl 的方法的过渡。目前,该脚本由nfs 配置systemctl 服务作为一次性服务。
我尝试覆盖nfs 内核服务器服务,但由于来源方式而无法做到这一点nfs 配置. 也许未来的版本会改变这一点。
答案2
查找文件“/usr/lib/systemd/scripts/nfs-utils_env.sh”
将以“echo RPCNFSDARGS”开头的行更改为:
echo RPCNFSDARGS=\"-L 10 -G 10 $RPCNFSDOPTS ${RPCNFSDCOUNT:-8}\"
了解更多信息
# man rpc.nfsd
-L or --lease-time seconds
Set the lease-time used for NFSv4. This corresponds to how often clients need to confirm their state with the server. Valid range is from 10 to 3600 sec‐
onds.
-G or --grace-time seconds
Set the grace-time used for NFSv4 and NLM (for NFSv2 and NFSv3). New file open requests (NFSv4) and new file locks (NLM) will not be allowed until after
this time has passed to allow clients to recover state.