我正在尝试使用 libvirt 作为我的提供程序来运行 Vagrant。使用 rsync 是难以忍受的,因为我正在使用一个巨大的共享目录,但是当注释掉 nfs 设置并设置标准 rsync 配置时,vagrant 确实成功了。
config.vm.synced_folder ".", "/vagrant", mount_options: ['dmode=777','fmode=777']
运行 vagrant up 后,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 up 之前,我查看是否有任何进程使用 netstat -tulpn 绑定(bind)到端口 98,但没有看到任何内容,事实上,当 vagrant 挂起时,我再次运行 netstat -tulpn 来查看绑定(bind)到端口的内容98,什么也没看到。 (检查当前用户和 root)
更新:尚未收到任何回复。
我无法弄清楚我当前遇到的问题。我尝试使用 lxc 代替,但在启动时卡住了。我也不想使用 VirtualBox,但问题似乎在于 nfs,而不是管理程序。将尝试使用 Vagrant 提供的 rsync-auto 功能,但我更希望让 nfs 正常工作。
最佳答案
看起来,当使用 libvirt 时,用户可以控制 nfs 和 rpcbind,而 Vagrant 甚至不会像我想象的那样尝试接触这些东西。运行这些解决了我的问题:
service rpcbind start
service nfs stop
service nfs start
关于vagrant - Fedora 22 上的 NFS Vagrant,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30542722/