Arista SDN部署

Arista的SDN方案是基于Ml2插件,Arista的mechanism_driver也已经集成到neutron的源码中,本文只涉及openstack的配置如何调整,对于arista交换机如何设置请咨询arista的相关人员。

部署环境

我们有一个简单的部署环境,但不是All-In-One这种,测试All-In-One对实际生产环境,意义不大,所以我们必须有一个简单的节点分离的部署环境。

在部署arista方案之前,你必须把H版neutron之类的都配好了,比如你已经实现了ovs plugin的方案,如果还没有,那么您还是从基础一点一点来吧。

我们这里有:

ncloud-controller   11.11.11.101
ncloud-compute-a1   11.11.11.103
ncloud-compute-a2   11.11.11.104
ncloud-network      11.11.11.105

11.11.11.0/24是我们的management-network,其它还应该有个data-network,不过这个部分和本文内容无太大关系,因为组件之间的通信都是走management-network的。

安装步骤

我们这里测试的是vlan模式,你如果想要测试VXLAN或者GRE之类的,建议你提前向厂商声明,因为支持vlan和VXLAN的交换机是不一样的。

清空并初始化

如果你之前neutron中存在network、port、router之类的,那么你必须全部删除掉,对应的虚拟机也一并删除。

每个节点ovs和namespace的信息也要全部清空,在所有的节点都执行如下命令:

neutron-ovs-cleanup
neutron-netns-cleanup

停止controller节点上neutron-server的服务,并drop掉neutron对应的database。

然后我们要重建ovs的bridge(如果之前有请删除),我的eth2网卡是data-network,eth0可以走通外网,那么ovs的操作如下:

compute节点:

ovs-vsctl add-br br-int
ovs-vsctl add-br br-eth2
ovs-vsctl add-port br-eth2 eth2

network节点:

ovs-vsctl add-br br-int
ovs-vsctl add-br br-eth2
ovs-vsctl add-port br-eth2 eth2

#external network bridge
ovs-vsctl add-br br-ex
ovs-vsctl add-port br-ex eth0

各节点配置

首先在所有节点上安装ml2 plugin,因为ml2插件的源码已经集成的neutron中,所以你只需把配置文件拷到对应的目录,就可以激活ml2插件了。

ml2的配置各个节点都需要一份,ml2插件的配置内容如下:

ml2/ml2_conf.ini
tenant_network_types = vlan
mechanism_drivers = openvswitch,arista
network_vlan_ranges = default:1000:2999

openvswitch/ovs_neutron_plugin.ini
bridge_mappings = default:br-eth2

neutron.conf
core_plugin = neutron.plugins.ml2.plugin.Ml2Plugin
service_plugins = neutron.services.l3_router.l3_router_plugin.L3RouterPlugin

创建数据库

创建neutron对应的database,然后在controller节点执行如下操作:

neutron-db-manage --config-file /etc/neutron/neutron.conf \
    --config-file /etc/neutron/plugins/ml2/ml2_conf_arista.ini \
    --config-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head

启动服务

neutron-server和ovs-agent服务启动有些变化,请参考下面。

contro1ler:

/usr/bin/python /usr/bin/neutron-server \
    --config-file /etc/neutron/neutron.conf \
    --config-file /etc/neutron/plugins/ml2/ml2_conf_arista.ini \
    --config-file /etc/neutron/plugins/ml2/ml2_conf.ini \
    --log-file /var/log/neutron/server.log

compute && network:

/usr/bin/python /usr/bin/neutron-openvswitch-agent \
    --config-file=/etc/neutron/neutron.conf \
    --config-file=/etc/neutron/plugins/ml2/ml2_conf.ini \
    --config-file=/etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini \
    --log-file=/var/log/neutron/openvswitch-agent.log

其余neutron服务正常启动即可,