我遇到了 NFS 挂载问题。我管理一个包含五个 Ubuntu 12.04 节点的集群。我需要 NFS 导出主节点中的一些路径来运行我的应用程序。如果我没有 NFS 共享启动,Ping 和 ssh 可以正常工作。
停止并重新启动系统后,辅助节点无法启动,因为它们无法获取 NFS 共享。在启动过程中,我收到以下错误消息:
开始阻止 NFS 文件系统的挂载事件,直到 statd 运行
启动时停止挂载文件系统
正在启动 NFSv4 id <-> 名称映射器
我尝试在恢复模式下启动节点,编辑 /etc/fstab 以删除共享,然后挂载,sudo mount -va
但没有成功:
meteo@ventus2:~$ sudo mount -va
[sudo] password for meteo:
mount: proc ya está montado en /proc
mount.nfs: timeout set for Fri Mar 28 09:30:01 2014
mount.nfs: trying text-based options 'vers=4,addr=192.168.1.1,clientaddr=192.168.1.2'
mount.nfs: mount(2): Connection refused
mount.nfs: trying text-based options 'vers=4,addr=192.168.1.1,clientaddr=192.168.1.2'
mount.nfs: mount(2): Connection refused
mount.nfs: trying text-based options 'vers=4,addr=192.168.1.1,clientaddr=192.168.1.2'
mount.nfs: mount(2): Connection refused
我也试过
meteo@ventus2:~sudo service statd restart
statd stop/waiting
statd start/running, process 3759
meteo@ventus2:~$ ps -ef | grep statd
statd 3544 1 0 09:24 ? 00:00:00 rpc.statd -L
然后安装但它不起作用。
在这里您可以看到辅助节点 ventus2 中的 /etc/fstab 和主机
文件系统
ventus:/home/meteo/镜像 /home/meteo/镜像 nfs
主办方
192.168.1.1 ventus.ceam.es ventus 192.168.1.2 ventus2.ceam.es ventus2
以及主节点 ventus 中的 /etc/exports
192.168.1.1 文图斯 192.168.1.2 文图斯2
有趣的是,自本周的停止和启动事件以来,该系统一直在运行。主节点是唯一具有互联网连接的节点,因此系统会定期更新,辅助节点仍使用其第一个 Ubuntu 12.04 系统。可能是版本冲突?mount -V
给出相同的版本。
从 util-linux 2.20.1 挂载(支持 libblkid 和 selinux)
有什么想法或建议吗?我会继续浏览网页。
提前致谢
答案1
我终于找到了 NFS 挂载问题的解决方案。在 Stackoverflow 上寻找类似问题时,我找到了这个帖子
我按照建议安装并运行了 rcconf
sudo apt-get install rcconf dialog
sudo rcconf
在rcconf
我标记statd 已选定(未标记)并重新启动主节点(NFS 服务器)。然后我重新启动每个节点,进入恢复模式,修改 fstab 以便它们可以启动(注释任何 NFS 条目)。当节点启动后,我恢复了 fstab 并挂载了 NFS 文件系统。
进入恢复模式时,我必须在编辑 fstab 之前重新挂载文件系统,因为之前它是不可写的
mount -o remount,rw /
nano /etc/fstab
然后恢复正常启动。
在终端中,我取消注释了 /etc/fstab 中的 NFS 导入,然后运行sudo mount -va
现在,已安装的文件系统出现了,它们可以被列出,并且在节点中创建/编辑的文件会出现在所有节点上。
当然,应该有一个更好、更通用的解决方案来确保 NFS 正确启动,但这对我来说是有效的。
希望它能对某人有所帮助。