Cloudstack上KVM支持多网卡需要通过在Zone中配置多个物理网络来实现,具体的过程如下:
1、 首先在KVM的Hypervisor上配置网桥,需要为每个通信网络(management、guest、public)网络分别创建网桥,并在网桥中配置相应的物理网卡。如下:
[root@kvm120 ~]# brctl show
cloudbr0 8000.ac162d7546dc no eth0
cloudbr1 8000.ac162d7546dd no eth1
cloudbr2 8000.ac162d7546de no eth2
Cloudstack在配置KVM Hypervisor的时候,会通过public和guest网桥名称查找相应的物理网卡,并将此物理网卡作为以后public和guest网络通信的物理接口。
说明:LibvirtComputingResource.java文件中的getPifs()àmatchPifFileInDirectory()的处理如下:
列出/sys/devices/virtual/net/" + bridgeName + "/brif目录下的文件,如果文件名前缀匹配eth,bond,vlan则返回此接口。
[root@kvm120 agent]# ls
/sys/devices/virtual/net/cloudbr0/brif/
eth0 vnet1
[root@kvm120 agent]# ls
/sys/devices/virtual/net/cloudbr1/brif/
eth1
2、 创建Zone的时候配置多个物理网络,并对每个物理网络编辑器“KVM流量标签”为相应的Hypervisor上配置的网桥名称。如下图:
注意:物理网络的“KVM流量标签”一定要同hypervisor上的网桥名称相同
3、 Zone创建完以后,添加KVM Hypervisor主机。
4、 添加来宾网络
5、 添加实例
6、 KVM Hypervisor上的public网桥与guest网桥是在虚拟网络中启动了第1个实例是自动配置的,配置的结果如下:
如上所示,网桥cloudVirBr1013与cloudVirBr1015是guest网络的网桥,cloudVirBr104是public网络的网桥,其中后面的数字代表vlan id。这3个网桥都是自动创建。
由于在创建Zone时配置的public网络的”KVM流量标签”是cloudbr1,而其对应的物理网卡是eth1,所以创建的public网络cloudVirBr104接口是eth1.104。
Guest网络的”KVM流量标签”是cloudbr2,而其对应的物理网卡是eth2,所以为每个虚拟网络创建的guest网桥cloudVirBr1013和cloudVirBr1015其接口eth2.1013与eth2.1015。
所以,实际使用的public与guest网络的配置都是自动完成,而创建物理网络时候配置的“KVM流量标签”,例如cloudbr1与cloudbr2仅起一个识别的作用,以让代码识别出实际的物理网卡。
注意:请正确配置连接hypervisor的交换机端口的vlan,连接管理网络的端口一般是access(untag)方式加入vlan,连接public和guest网络的端口一般是trunk(tag)方式加入vlan。
没有评论:
发表评论