为KVM设置Linux虚拟网络

在KVM虚拟环境中,虚拟硬件最复杂的一个方面是设置虚拟网络。在本文中,TechTarget中国的特约专家Sander van Vugt将介绍如何设置网络接口。

在配置虚拟网络时需要注意两部分。首先,在主机操作系统里配置物理网络卡。然后在虚拟机里配置虚拟网络接口。

物理与虚拟网络配置比较

在开始配置虚拟网络之前,需要确定你想要配置的东西。在现代网络里,由于服务器通常配备有几个网络卡,因此会存在许多不同的配置情形。事实上你的服务器拥有越多的网络卡,就带来了第一个重要的问题:你会使用这些卡以在NIC聚合配置里增加性能和冗余吗?或者你要单独配置网络卡,以便能分配某台虚拟机给某个虚拟网络?

喜欢这两种方法的任何一种都是有理由的。如果一台或两台虚拟机上的工作负载没有显示拥有相当高的网络I/O,配置虚拟网络的最佳方式可能是通过设置主机操作系统里的NIC绑定配置。多数Linux版本为这样的环境提供解决方案。结果是不使用单独的网络卡,你只能使用一个网络接口,即bond0接口。在bond0接口之上,你能创建虚拟网桥接口(像真实的交换机那样工作)。然后所有单独的虚拟机将使用这个虚拟网桥上的端口,对于任何虚拟机都没有优先权。

这种方案的优势在于主机操作系统能分配给可用的虚拟机平等的优先权。同时,网络绑定接口确保在网络里存有冗余。如果绑定环境里的一个接口崩溃,其他接口能够接管其工作,确保网络持续性。

手动优先权分配

你可以选择不在主机操作系统里绑定物理网络接口到一个大的绑定设备。这种方式也提供了一些优势,即你能手动决定哪台虚拟机将使用的哪个虚拟网络卡。假设你的环境里有四台虚拟机,但是其中一台导致了相当高的工作负载。在这样的情形下,你最好使用两个(或更多)不同的网络接口。你需要做的是在每个接口上配置网桥,并为需要高带宽的虚拟机专门分配一个接口,将所有其他虚拟机分配给其他接口。这样的方法能让你手动地跨网络负载均衡虚拟机。

你也应该在虚拟机里配置网络。没有什么能阻止你在虚拟机里创建网络绑定设备。站在更实际的角度,这不是好主意。如果你在主机上配置网络,所有的虚拟机能使用这种配置。如果你在虚拟机里配置网络,你应该需要为每台虚拟机重复网络配置过程。

相关推荐