Neutron分析(7)—— neutron-l3-agent HA solutions
1. keepalived vrrp/conntrackd
High availability features will be implemented as extensions or drivers.A first extension/driver will be based on VRRP.
A new scheduler will be also added in order to be able to spawn multiple instances of a same router in many places.
Conntrackd will be used to maintain the TCP sessions going through the router. One instance of conntrackd per virtual router, then one per namespace.
Blueprints: https://blueprints.launchpad.net/neutron/+spec/l3-high-availability
wiki: https://wiki.openstack.org/wiki/Neutron/L3_High_Availability_VRRP
analysis: http://blog.csdn.net/quqi99/article/details/18799877
2. neutron DVR based multi-host l3-agent
Provide Distributed Virtual Routing functionality with OVS, to improve the performance.
在Openstack中L3router会造成流量集中的问题。不论东西向还是南北向的流量都需要流过网络节点的虚拟路由器。为了解决流量集中的问题,社区正在开打分布式虚拟路由器(DVR)的feature。
https://blueprints.launchpad.net/neutron/+spec/neutron-ovs-dvr
https://wiki.openstack.org/wiki/Neutron/DVR_L2_Agent
http://m.blog.csdn.net/blog/maoliping455mlp455/36899391
http://blog.csdn.net/quqi99/article/details/20711303
3. Neutron Multi-host DHCP and L3
Goal here is to have a DHCP implementation that provides the same properties as nova-network's "multi_host" functionality, where the DHCP server for a particular VM runs directly on the same hypervisor as the VM itself (with the exception of when a VM migrates).
This blueprints is in drafting, and will not merge in upstream.
https://blueprints.launchpad.net/neutron/+spec/quantum-multihost
4. crontab using neutron-client
http://m.blog.csdn.net/blog/maoliping455mlp455/23428897
So this when we neutron-l3-agent is down, we can see that it will not affect the existed VMs. And we can easily use monitd to make process "neutron-l3-agent" is always alive. We can use the following script, and run a crontab(every 10 sec) on the server which installed neutronclient (But not on the controller nodes):
#!/usr/bin/python
from neutronclient.v2_0 import client as neutronclient TENANT_NAME="admin"
USERNAME="admin"
PASSWORD="admin"
AUTH_URL="https://10.224.159.107:443/v2.0/" neutron = neutronclient.Client(auth_url=AUTH_URL,
username=USERNAME,
password=PASSWORD,
tenant_name=TENANT_NAME) agents = neutron.list_agents()
alive_l3_agents = []
dead_l3_agents = [] for agent in agents['agents']:
if agent['binary'] == 'neutron-l3-agent' and agent['alive'] == True:
alive_l3_agents.append(agent)
if agent['binary'] == 'neutron-l3-agent' and agent['alive'] != True:
dead_l3_agents.append(agent) if len(alive_l3_agents) == 0 :
print "No active L3" if len(dead_l3_agents) == 0 :
print "No dead L3" routers = neutron.list_routers()
dead_routers = [] for dead_l3_agent in dead_l3_agents:
dead_routers = neutron.list_routers_on_l3_agent(dead_l3_agent['id'])
for dead_router in dead_routers['routers']:
neutron.remove_router_from_l3_agent(dead_l3_agent['id'], dead_router['id'])
print "remove_router_from_l3_agent : L3 id is %s, router id is %s" %(dead_l3_agent['id'], dead_router['id'])
# Currently, only add to the first alive agent
neutron.add_router_to_l3_agent(alive_l3_agents[0]['id'], {"router_id":dead_router['id']})
print "add_router_to_l3_agent : L3 id is %s, router id is %s" %(alive_l3_agents[0]['id'], dead_router['id'])
5. HA of other components
(1) Database: active-passive (pacemarker + DRBD); active-active (Galera)
http://blog.csdn.net/quqi99/article/details/9392789
(2) MQ: MQ cluster
http://blog.csdn.net/quqi99/article/details/9394121
(3) Cinder: Local File System (Raid10 + LVM); Distrubte File System (Ceph)
http://blog.csdn.net/quqi99/article/details/9396413
http://blog.csdn.net/quqi99/article/details/10894833
(4) All stateless services, like (keystone|glance|nova|neutron)-api, nova-schedule etc (haproxy + pacemarker)
(5) l3-agent: VRRP + keeplived + ip conntracked
https://blueprints.launchpad.net/neutron/+spec/l3-high-availability
http://blog.csdn.net/quqi99/article/details/18799877
Neutron分析(7)—— neutron-l3-agent HA solutions的更多相关文章
- 理解 OpenStack 高可用(HA)(2):Neutron L3 Agent HA 之 虚拟路由冗余协议(VRRP)
本系列会分析OpenStack 的高可用性(HA)概念和解决方案: (1)OpenStack 高可用方案概述 (2)Neutron L3 Agent HA - VRRP (虚拟路由冗余协议) (3)N ...
- Neutron路由篇:L3 agent+Namespace
Neutron 的路由服务是由 l3 agent 提供的. 除此之外,l3 agent 通过 iptables 提供 firewall 和 floating ip 服务. l3 agent 需 ...
- Neutron分析(5)—— neutron-l3-agent中的iptables
一.iptables简介 1.iptables数据包处理流程 以本机为目的的包,由上至下,走左边的路 本机产生的包,从local process开始走左边的路 本机转发的包,由上至下走右边的路 简化流 ...
- Neutron 理解 (6): Neutron 是怎么实现虚拟三层网络的 [How Neutron implements virtual L3 network]
学习 Neutron 系列文章: (1)Neutron 所实现的虚拟化网络 (2)Neutron OpenvSwitch + VLAN 虚拟网络 (3)Neutron OpenvSwitch + GR ...
- Neutron分析(3)—— neutron-l3-agent
一.Layer-3 Networking Extension neutron l3作为一种API扩展,向租户提供了路由和NAT功能. l3扩展包含两种资源: router:在不同内部子网中转发数据包: ...
- openstack Neutron分析(3)—— neutron-dhcp-agent源码分析
1.neutron dhcp3个主要部件分别为什么?2.dhcp模块包含哪些内容?3.Dnsmasq配置文件是如何创建和更新的?4.DHCP agent的信息存放在neutron数据库的哪个表中? 扩 ...
- Neutron分析(2)——neutron-server启动过程分析
neutron-server启动过程分析 1. /etc/init.d/neutron-server DAEMON=/usr/bin/neutron-server DAEMON_ARGS=" ...
- Neutron 理解 (1): Neutron 所实现的虚拟化网络 [How Netruon Virtualizes Network]
学习 Neutron 系列文章: (1)Neutron 所实现的虚拟化网络 (2)Neutron OpenvSwitch + VLAN 虚拟网络 (3)Neutron OpenvSwitch + GR ...
- Neutron 理解 (4): Neutron OVS OpenFlow 流表 和 L2 Population [Netruon OVS OpenFlow tables + L2 Population]
学习 Neutron 系列文章: (1)Neutron 所实现的虚拟化网络 (2)Neutron OpenvSwitch + VLAN 虚拟网络 (3)Neutron OpenvSwitch + GR ...
随机推荐
- IE6 IE7下文字显示竖排的解决办法
IE下文字显示竖排的解决办法: white-space:nowrap;
- Vimium 快捷键记录
, <c-e> : Scroll down k, <c-y> : Scroll up h : Scroll left l : Scroll right gg : Scroll ...
- Java 抓取网页内容
前两天想写一段自动提取微博状态的代码.据我所知,实现这个功能即可以用PHP写,也可以用Java写.我认为用Java写调试方便一点,PHP的脚本还要上传到服务器什么的. 代码很简单的,新建一个java. ...
- ZOJ 1037 Gridland
原题链接 题目大意:给出一个格子图,求走完所有节点的最短路径距离. 解法:简单啊,如果都是奇数,可以走一次斜边,其他情况就是长*宽. 参考代码: #include <stdio.h> in ...
- JavaWeb学习记录(四)——日期和数字的格式转换
一.Date转为String (1) public class DateUtil { private static SimpleDateFormat sdf = new SimpleDateFo ...
- JavaScript学习记录总结(七)——dom对象应用之用户简单管理
<!DOCTYPE html><html><head><title>users.html</title> <meta name=&qu ...
- 【LOI2005】【P1306】河流
树归题,本来比较简单,但是因为几个思想搞错了,所以卡了两天 原题: 几乎整个Byteland 王国都被森林和河流所覆盖.小点的河汇聚到一起,形成了稍大点的河.就这样,所有的河水都汇聚并流进了一条大河, ...
- Windows Phone使用总结(长期更新)
[感受和经历] 1,型号,撸妹640XL: 2,经历,去银行办卡,当然各种潜规则要我装APP,然后小妹夺我手机要帮我安装,拿过去之后又还给我了--哈哈哈哈,不过乐极生悲,我以为能成功躲过去了,发现中国 ...
- 套接字I/O模型-WSAAsyncSelect
利用这个异步I/O模型,应用程序可在一个套接字上接收以Windows消息为基础的网络事件通知.WSAAsyncSelect和WSAEventSelect提供读写数据能力的异步通知,但它们不提供异步数据 ...
- 胶囊碰撞体(CapsuleCollider)
胶囊碰撞体 (Capsule Collider) 胶囊碰撞体 (Capsule Collider) 由两个半球体与一个圆柱体相连接而构成.它与胶囊 (Capsule) 基元形状相同. 一堆胶囊碰撞 ...