OpenStack与OpenDaylight的对接过程
由于项目中需要使用OpenDaylight(Oxygen)替换OpenStack(Otaca)中的neutron-openvswitch-agent,能找到的一些资料都是比较旧的版本,官网上的文档也一直没有更新,导致中间踩了很多坑,特此记录一下两者对接的过程
首先是环境,此次对接使用的opendaylight版本是0.8.3的版本,OpenStack使用的阿里镜像中的Ocata版本
对接必须确认opendaylight中feature:
odl-netvirt-openstack
已安装
由于在部署Openstack时没有分离出网络节点,故控制节点与网络节点为同一主机
在控制节点上进行如下操作:
1.在部署openstak的机器上确认实例:
nova list
2.清空实例
nova delete
3.查看子网
neutron subnet-list
4.查看路由
neutron router-list
5.查看路由接口
neutron router-port-list
6.删除路由接口
neutron router-interface-delete
7.删除子网
neutron subnet-delete
neutron net-list
8.删除网络
neutron net-delete
9.删除路由
neutron router-delete
10.确认接口是否清空
neutron port-list
11.停止neutron相关服务
systemctl stop neutron-server
systemctl stop neutron-openvswitch-agent
systemctl disable neutron-openvswitch-agent
12.停止OVS并清空OVS的数据库,再启动OVS
systemctl stop openvswitch
rm -rf /var/log/openvswitch/*
rm -rf /etc/openvswitch/conf.db
systemctl start openvswitch
13.此时使用
ovs-vsctl show
查看ovs状态时应该没有任何的网桥
14.设置控制器全权控制OVS
ovs-vsctl set-manager tcp:${CONTROL_HOST}:6640
使用
ovs-vsctl show
命令后能看到opendaylight已经管理了OVS,并且生成了br-int的网桥。并且br-int也属于odl管理
15.安装ml2驱动:
yum install python-pip
pip install --upgrade distribute
git clone https://github.com/openstack/networking-odl -b stable/ocata
cd networking-odl
python setup.py install
16.修改/etc/neutron/plugins/ml2/ml2_conf.ini:
[ml2]
mechanism_drivers = opendaylight
#在文件最末加上
[ml2_odl]
password = admin
username = admin
#${CONTROL_HOST}这个值修改为odl的ip地址
url = http://${CONTROL_HOST}:8181/controller/nb/v2/neutron
17.将配置写入neutron的数据库中:
mysql -u root -p -e "drop database if exists neutron_ml2;"
mysql -u root -p -e "create database neutron_ml2 character set utf8;"
mysql -u root -p -e "grant all on neutron_ml2.* to 'neutron'@'%';"
neutron-db-manage --config-file /usr/share/neutron/neutron-dist.conf --config-file /etc/neutron/neutron.conf \
--config-file /etc/neutron/plugin.ini upgrade head
18.启动neutron服务:
systemctl start neutron-server
19.可以通过odl查看是否有网络(有结果返回即配置成功,若返回错误信息则需要检查odl是否安装了相应的组件)
curl -u admin:admin http://${CONTROL_HOST}:8181/controller/nb/v2/neutron/networks
20. openstack启用odl控制
neutron-odl-ovs-hostconfig --datapath_type=system
在计算节点进行如下操作:
1.关闭计算节点的openvswitch agent
systemctl stop neutron-openvswitch-agent
systemctl disable neutron-openvswitch-agent
2.将计算节点的ovs中所有网桥以及管理地址清空
systemctl stop openvswitch
rm -rf /var/log/openvswitch/*
rm -rf /etc/openvswitch/conf.db
systemctl start openvswitch
3.设置控制器全权控制OVS
ovs-vsctl set-manager tcp:${CONTROL_HOST}:6640
验证:
ovs-vsctl show
4.安装openstack-odl驱动
yum install python-pip
pip install --upgrade distribute
git clone https://github.com/openstack/networking-odl -b stable/ocata
cd networking-odl
python setup.py install
5.openstack启用odl控制(官方文档未添加这一命令,但是必须运行,否则neutron仍然会使用openvswitch进行网络组建,导致虚拟机无法启动)
neutron-odl-ovs-hostconfig --datapath_type=system
此时opendaylight与open stack已经对接完成,可以正常建立虚拟机了
不过对接完成后在建立虚拟机时会出现Openstack已经分配好ip,但虚拟机实例内部网卡没有ip的情况,此问题暂未解决(使用cirros镜像测试)
OpenStack与OpenDaylight的对接过程的更多相关文章
- OpenStack with Opendaylight Part 1: Intro to Pipeline
Using Vagrant to create vm nodes; devstack to start openstack using Opendaylight as ML2. Openstack w ...
- php与国付宝对接过程吐槽
最近.我们在打造全国第一家互联网+风险管理平台(避险谷)时.须要与第三方支付平台"国付宝"进行在线交易对接. 之前对接过支付宝 .感觉还非常easy,拿到国付宝的接口文档.我晕啊. ...
- [cloud][sdn] openstack openflow opendaylight openvswitch
https://www.quora.com/What-is-the-relation-between-OpenStack-OpenDaylight-OpenFlow-and-Open-vSwitch- ...
- openstack创建一个虚拟机的过程
为什要用云? 一.简单的说就是对资源更加合理的分配,使用,比如硬件的数量,带宽等等这些,因为你不能机器买来不需要了再卖掉(当然也可以),带宽跟机房签合同得来一年的,中间不够了也不能加,超了也不退钱 ...
- OpenStack 中的neutron-server启动过程
neutron-server是neutron的核心组件之中的一个.负责直接接收外部请求,然后调用后端对应plugin进行处理. 其核心启动过程代码主要在neutron.server包中. __init ...
- Ceph和Openstack的cinder模块对接方法
1.创建存储池 在ceph节点中执行如下语句. #ceph osd pool create volumes 2.配置 OPENSTACK 的 CEPH 客户端 在ceph节点两次执行如下语句,两次{y ...
- 云计算/云存储---Ceph和Openstack的cinder模块对接方法
1.创建存储池 在ceph节点中执行如下语句. #ceph osd pool create volumes 2.配置 OPENSTACK 的 CEPH 客户端 在ceph节点两次执行如下语句,两次{y ...
- openstack之nova启动实例过程
概述: 启动一个实例包含以下步骤: API server:处理用户请求并转发至cloud controller cloud controller:处理计算节点.网络控制.api server 以及sc ...
- Openstack部署总结:“部署过程Error: Local ip for ovs agent must be set when tunneling is enabled”问题
问题叙述性说明 正在使用RDO当多节点部署测试,因为使用了一些老机器和机器类型的差异(一些HP的PC,有些DELL的PC).以下错误出现: Applying 192.168.40.107_neutro ...
随机推荐
- Archive MySQL Data In Chunks Using Stored Procedure
sqladminon September 26, 2018 In a DBA’s day to day activities, we are doing Archive operation on ou ...
- linux访问Windows共享文件命令
mount -o username=username,password=password,ip=10.0.0.1 //10.0.0.1/backupscm /home/package/image_vm ...
- java读取txt文件的2中方法---并将内容(每一行以固定的字符分割切成2段)存到map中去
#java读取txt文件的第一种方法 /** * 方法:readTxt * 功能:读取txt文件并把txt文件的内容---每一行作为一个字符串加入到List中去 * 参数:txt文件的地址 * 返回: ...
- 乘风破浪:LeetCode真题_031_Next Permutation
乘风破浪:LeetCode真题_031_Next Permutation 一.前言 这是一道经典的题目,我们实在想不出最好的方法,只能按照已有的方法来解决,同时我们也应该思考一下为什么要这样做?是怎么 ...
- tplink-ssh登录
同步发表:https://www.eatm.app/archives/395.html 备份配置信息 开启SSH #修改文件userconfig/etc/config/dropbear, #查看opt ...
- [HZNOI #koishi] Magic
[HZNOI #514] Magic 题意 给定一个 \(n\) 个点 \(m\) 条边的有向图, 每个点有两个权值 \(a_i\) 和 \(b_i\), 可以以 \(b_i\) 的花费把第 \(i\ ...
- Spring Boot 集成 thymeleaf 模版引擎
Spring Boot 建议使用 HTML 来完成动态页面.Spring Boot 提供了大量的模版引擎,包括 Thymeleaf.FreeMarker.Velocity等. Spring Boot ...
- 1.Solr介绍
转载请出自出处:http://www.cnblogs.com/hd3013779515/ Solr是一个基于Lucene的全文搜索引擎,同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,实现 ...
- 基于汇编的 C/C++ 协程 - 背景知识
近几年来,协程在 C/C++ 服务器中的解决方案开始涌现.本文主要阐述以汇编实现上下文切换的协程方案,并且说明其在异步开发模式中的应用. 本文地址:https://segmentfault.com/a ...
- Swift 并行编程现状和展望 - async/await 和参与者模式
这篇文章不是针对当前版本 Swift 3 的,而是对预计于 2018 年发布的 Swift 5 的一些特性的猜想.如果两年后我还记得这篇文章,可能会回来更新一波.在此之前,请当作一篇对现代语言并行编程 ...