这几天一直在搞dvr,现在终于搞好了。网上的资料比较杂乱,期间也一直在各种尝试,步骤也很繁琐而且混乱,坑比较多,现在整理一下。
官方安装文档从前几个版本开始在 配置网络的时候就由ovs改成了Linuxbridge,原因有很多,这里不讨论。我是按照官方文档进行部署的,自然使用的是Linuxbridge。DVR中文名叫分布式路由,可以在计算节点实现东西向流量的转发,不用再绕道控制节点(从M版开始网络节点并入了控制节点),这样就能够减轻控制节点的负载。有资料显示DVR只能部署在ovs上,而且我在网络上看到的所有关于DVR部署的文档都是基于ovs的,所有我必须将Linuxbridge换成ovs。
先说一下我的openstack环境状况:一个控制节点,两个计算节点,控制节点的第一块网卡IP地址为192.168.1.51,用作管理网,第二块网卡无IP地址,作为provider网络,负责与外网通信。计算节点1的第一块网卡IP地址为192.168.1.71,连接管理网。计算节点2的第一块网卡IP地址为192.168.1.72,连接管理网。我使用的是self-service网络。系统是Ubuntu16.04,所有安装步骤都是按照N版官方文档进行的。
如果你已经安装了Linuxbridge,那么需要先卸载Linuxbridge
# apt purge neutron-Linuxbridge-agent
然后在数据库中删除neutron数据库
mysql> DROP DATABASE neutron;
一、下边是N版安装ovs的步骤:
1、在网络节点上
首先进入数据库
# mysql -u root -p
然后创建neutron数据库
mysql> CREATE DATABASE neutron;
给数据库赋权
GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'localhost' IDENTIFIED BY 'NEUTRON_DBPASS';
GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'%' IDENTIFIED BY 'NEUTRON_DBPASS';
你自己选一个合适的密码替换NEUTRON_DBPASS
注意,为了简单起见,我的所有的密码都是123456
使用admin credentials
# . admin-openrc
创建service credentials
# openstack user create --domain default --password-prompt neutron
# openstack role add --project service --user neutron admin
# openstack service create --name neutron --description "OpenStack Networking" network
创建Networking service API endpoints
# openstack endpoint create --region RegionOne network public http://controller:9696
# openstack endpoint create --region RegionOne network internal http://controller:9696
# openstack endpoint create --region RegionOne network admin http://controller:9696
安装组件
# apt install neutron-server neutron-plugin-ml2 neutron-l3-agent neutron-dhcp-agent neutron-metadata-agent neutron-openvswitch-agent
/etc/neutron/neutron.conf配置如下
[DEFAULT]
rpc_backend = rabbit
core_plugin = ml2
service_plugins = router
allow_overlapping_ips