在这篇文章里介绍了如果运行主机管理在openvswitch之上,而不是单独配置一个物理网卡用于主机管理,并且所有的vm的流量还是通过openvswitch走的。
Running Host Management on Open vSwitch
Open vSwitch (OVS) brings lots of functionality to Linux virtualization hosts, including the ability to use Link Aggregation Control Protocol (LACP) for enhanced network interface card (NIC) failover and redundancy. In this post, I’m going to show you how to run a host management interface on a LACP bundle through OVS. This prevents you from having to give up a physical interface for host management, and allows you to run all traffic through OVS.
First, configure the LACP bundle as I describe in my post on link aggregation and LACP with OVS. You’ll want to ensure that the LACP configuration is working properly before you continue. Remember that you can use ovs-appctl bond/show <bond name>
and ovs-appctl lacp/show <bond name>
to help troubleshoot the LACP configuration and operation.
Next, create an “internal” interface that Linux will use as a Layer 3 interface. We’ll do this using ovs-vsctl
, like this:
ovs-vsctl add-port ovsbr1 mgmt0 -- set interface mgmt0 type=internal |
This command adds a port called mgmt0
to the specified bridge (ovsbr1
in this example), and then sets the interface associated with mgmt0
to the type “internal.” I don’t yet know why setting the type to internal is required, only that it’s necessary if you want the interface to be usable by Linux as a Layer 3 interface.
If you need the management traffic on a specific VLAN, then modify the command to specify a particular OVS fake bridge (more here on using fake bridges with VLANs):
ovs-vsctl add-port vlan100br mgmt0 -- set interface mgmt0 type=internal |
You can also just assign the VLAN tag directly, although that configuration goes against the OVS port, not the OVS interface:
ovs-vsctl set port mgmt0 tag=100 |
Once the interface is created, then configure Linux to use that interface as a Layer 3 interface with an IP address assigned. On Ubuntu 12.04 LTS, that means adding a stanza to the /etc/network/interfaces
configuration file, like this:
auto mgmt0 |
And that’s it! You can now use the IP address assigned to the mgmt0
interface (or whatever you named it) to manage the Linux virtualization host, all while knowing that you have a bonded LACP configuration protecting you against a network link failure. I’m using this configuration on all my Ubuntu-KVM hosts in my home lab; the physical interfaces are members of LACP bonds.
(Oh, one side note: on Ubuntu, this configuration causes a delay during the boot process. I don’t yet know why this delay occurs, or how to fix it. I’ll post something if I figure it out.)
If you have any questions or thoughts about this configuration, please feel free to speak up in the comments below—all courteous comments are welcome.