Fedora 22上的NFS Vagrant

时间:2015-05-30 05:42:00

标签: vagrant rpc fedora nfs libvirt

我正在尝试使用libvirt作为我的提供者来运行Vagrant。使用rsync是无法忍受的,因为我正在使用一个巨大的共享目录,但是当nfs设置被注释掉并且设置了标准rsync配置时,vagrant会成功。

config.vm.synced_folder ".", "/vagrant", mount_options: ['dmode=777','fmode=777']

在流浪汉上升后,Vagrant永远坚持这一步

==> default: Mounting NFS shared folders...

在我的Vagrantfile中,我没有注释,并且rsync配置已注释掉,这会打开NFS。

config.vm.synced_folder ".", "/vagrant", type: "nfs"

当Vagrant运行时,它会回到终端。

Redirecting to /bin/systemctl status  nfs-server.service
● nfs-server.service - NFS server and services
   Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; disabled; vendor preset: disabled)
   Active: inactive (dead)
Redirecting to /bin/systemctl start  nfs-server.service
Job for nfs-server.service failed. See "systemctl status nfs-server.service" and "journalctl -xe" for details.

systemctl status nfs-server.service

的结果
dillon@localhost ~ $ systemctl status nfs-server.service
● nfs-server.service - NFS server and services
   Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; disabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since Fri 2015-05-29 22:24:47 PDT; 22s ago
  Process: 3044 ExecStart=/usr/sbin/rpc.nfsd $RPCNFSDARGS (code=exited, status=1/FAILURE)
  Process: 3040 ExecStartPre=/usr/sbin/exportfs -r (code=exited, status=0/SUCCESS)
 Main PID: 3044 (code=exited, status=1/FAILURE)

May 29 22:24:47 localhost.sulfur systemd[1]: Starting NFS server and services...
May 29 22:24:47 localhost.sulfur rpc.nfsd[3044]: rpc.nfsd: writing fd to kernel failed: errno 111 (Connection refused)
May 29 22:24:47 localhost.sulfur rpc.nfsd[3044]: rpc.nfsd: unable to set any sockets for nfsd
May 29 22:24:47 localhost.sulfur systemd[1]: nfs-server.service: main process exited, code=exited, status=1/FAILURE
May 29 22:24:47 localhost.sulfur systemd[1]: Failed to start NFS server and services.
May 29 22:24:47 localhost.sulfur systemd[1]: Unit nfs-server.service entered failed state.
May 29 22:24:47 localhost.sulfur systemd[1]: nfs-server.service failed.

journelctl -xe日志中有大量内容,所以我不会在这里发布所有内容,但有些内容是粗体红色。

May 29 22:24:47 localhost.sulfur rpc.mountd[3024]: Could not bind socket: (98) Address already in use
May 29 22:24:47 localhost.sulfur rpc.mountd[3024]: Could not bind socket: (98) Address already in use
May 29 22:24:47 localhost.sulfur rpc.statd[3028]: failed to create RPC listeners, exiting
May 29 22:24:47 localhost.sulfur systemd[1]: Failed to start NFS status monitor for NFSv2/3 locking..

在我运行vagrant之前,我查看是否有任何进程绑定到端口98与netstat -tulpn并没有看到任何东西,事实上,当vagrant挂起我再次运行netstat -tulpn以查看绑定到端口的是什么98并没有看到任何东西。 (检查当前用户和root用户)

更新:尚未得到任何回复。

我无法弄清楚我当前遇到的问题。我尝试使用lxc,但在启动时卡住了。我也不想使用VirtualBox,但问题似乎在于nfs而不是虚拟机管理程序。尝试使用Vagrant提供的rsync-auto功能,但我更喜欢让nfs工作。

4 个答案:

答案 0 :(得分:1)

看起来当使用libvirt时,用户可以控制nfs和rpcbind,而Vagrant甚至不会尝试触摸那些像我原先想象的那样的东西。运行这些解决了我的问题:

service rpcbind start
service nfs stop
service nfs start

答案 1 :(得分:1)

tail的systemd单元依赖项包含nfs-server.service但不包含rpcbind.target

一个简单的解决方案是创建一个包含以下内容的文件rpcbind.service

/etc/systemd/system/nfs-server.service

答案 2 :(得分:0)

在CentOS 7上,我需要做的就是 安装了缺少的rpcbind,如下所示:

yum -y install rpcbind

systemctl enable rpcbind

systemctl start rpcbind

systemctl restart nfs-server

我花了一个多小时才发现并试试这个:)

米歇尔

答案 3 :(得分:0)

我在Fedora 22上使用libvirt和VirtualBox提供程序时遇到了NFS挂载的问题。经过大量的研究,我设法发现这是一个防火墙问题。 Fedora似乎默认提供firewalld服务。停止这项服务 - sudo systemctl stop firewalld - 为我做了诀窍。

当然,理想情况下你会配置这个防火墙而不是完全禁用它,但我不知道该怎么做。