最近我一直在尝试学习如何将 XenServer 用于我的另一个项目,我需要能够从命令行以编程方式启动和销毁虚拟机。
由于这主要是个人项目,我无法购买任何真正的硬件,因此我目前在桥接模式下在 Oracle VirtualBox 中运行 XenServer,没有 HVM,所以我只能启动 32 位 Linux VM(我认为)。
目前我运行以下命令,成功启动虚拟机并使其处于运行状态:
xe vm-install template=<the_ubuntu_precise_template_32bit> new-name-label=UbuntuVM sr-uuid=<local_storage_uuid>
xe network-list bridge=xenbr0 --minimal
xe vif-create vm-uuid=<vm_uuid> network-uuid=<network_uuid (previous command output)> mac=random device=0
xe vm-param-set uuid=<vm_uuid> other-config:install-repository=http://archive.ubuntu.com/ubuntu/dists/precise-updates/
xe vm-start uuid=<vm_uuid>
一旦我运行这些命令,就会出现短暂的停顿,同时我假设网络安装程序已下载,然后虚拟机进入运行模式。(如我运行时所显示的那样xe vm-list
)
然后如果我运行xe console uuid=<vm_uuid>
,我就会进入 ubuntu 安装程序,但是每次安装程序都会失败。
在设置中,一切似乎都运行良好,IPv6 设置正确,我仔细检查了路由器,发现虚拟机已正确注册为连接设备。然后它要求我选择一个镜像,但在选择镜像后,安装程序开始“下载发布文件”,进度条开始在几分钟内从 0% 跳到 100%,返回错误消息:BAD MIRROR
。我尝试了不同的镜像,但我发现没有一个能用,并抛出了同样的错误。
最后,我启动了安装程序中包含的 Shell,并运行以下命令来测试我的互联网连接是否正常:
ping 127.0.0.1
=127.0.0.1 is alive!
ping 192.168.0.31
(XenServer 主机)=192.168.0.31 is alive!
ping 192.168.0.1
但是(我的路由器)什么也没有返回。
ping 8.8.8.8
也没有返回任何内容。
由此看来,虚拟机似乎无法访问互联网,所以我相信我分配给虚拟机的网络可能存在问题?
在XenServer主机上我运行ifconfig
并收到以下信息:
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
ether 08:00:27:6f:51:a0 txqueuelen 1000 (Ethernet)
RX packets 246 bytes 47076 (45.9 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 93 bytes 10473 (10.2 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
loop txqueuelen 0 (Local Loopback)
RX packets 16 bytes 4602 (4.4 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 16 bytes 4602 (4.4 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
xenbr0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.0.31 netmask 255.255.255.0 broadcast 192.168.0.255
ether 08:00:27:6f:51:a0 txqueuelen 0 (Ethernet)
RX packets 274 bytes 48924 (47.7 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 121 bytes 13909 (13.5 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
为了确保万无一失,我还在netstat -rn
XenServer 主机上运行了该程序,并收到了以下输出:
内核 IP 路由表
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 xenbr0
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 xenbr0
任何帮助将不胜感激,
干杯,奥利
答案1
好吧,事实证明,经过一番大费周章之后,您无法使用桥接适配器在 VirtualBox 中运行 XenServer,同时提供对虚拟机的访问。因此,为了快速解决这个问题,我求助于使用 NAT 和端口转发 SSH 到我的主机(我的 MacBook),以便能够连接。我不完全确定为什么我无法在桥接模式下运行 XenServer,但我猜这与xenbr0
设置不正确有关,坦率地说,对于一台测试机器来说,看看我是否能够启动虚拟机,我懒得重新配置它,而且我不确定是否有可能这样做。
因此,作为对所有 VirtualBoxers 的快速修复,在 NAT 中运行 XenServer就像它在桥接适配器模式下不起作用。
希望这能帮助任何头痛的人,
奥利。