我正在尝试使用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工作。
答案 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
- 为我做了诀窍。
当然,理想情况下你会配置这个防火墙而不是完全禁用它,但我不知道该怎么做。