独立的KVM服务器最佳实践

我正在寻找一个function强大的服务器机器用于虚拟化。 我正在计划使用KVM + QEMU运行Debian进行虚拟化,并使用硬件RAID6来存储虚拟机。 我也希望能够使用相同的IP路由到不同的虚拟机,这取决于像域或端口的东西,因为我的协同定位提供商需要额外的费用,每额外的IP我需要。

什么是实现这一目标的最佳实践? 或者如果你有这种设置的一些一般的技巧和窍门? 我假设我需要某种types的防火墙来做路由,但是我应该创build一个连接到物理接口的桥接设备来放置虚拟机,还是应该坚持自动创build的虚拟桥接?

任何帮助表示赞赏!

我很抱歉如果这个问题太笼统了,但我不知道还有什么地方可以发布。

将您的访客networking接口与私有IP保持在一个内部网桥中,在主机上configurationiptables以将其外部接口上的端口NAT转换为内部网桥中的IP和端口。

例如,说你的主机的互联网IP是1.2.3.4 。 设置一个网桥(我们称之为virbr0 ),并给这个主机一个IP,如192.168.0.1/24 。 当您创build新的虚拟客户端时,将其networking接口桥接到virbr0并为客户端OS提供192.168.0.0/24内的IP地址。 在主机上,创build一个类似1.2.3.4:10022指向192.168.0.10:22的NAT。 要从外部ssh访问该guest虚拟机,您需要ssh到主机上的外部端口。

您还需要一个传出NAT规则,以便来宾使用192.168.0.1作为它们的默认网关,并且主机接受来自guest虚拟机的任何请求,并将它们NAT出它的外部接口。

入站NAT(称为DNAT)涵盖在:

出站NAT(称为MASQUERADE)涵盖在:

我想避免一个桥梁,并使用主机专用路由使configuration更容易理解。

如果客人是Linux系统,那么我build议使用串行控制台(可以通过virsh console $domain访问)来configuration它们。

如果您打算使用libvirt来pipe理kvm,请阅读“Red Hat的虚拟化pipe理指南” (RHEL 6)或“ 虚拟化部署和pipe理指南” (RHEL 7)。 甚至在Debian上也是有用的。