码迷,mamicode.com
首页 > 其他好文 > 详细

Neutron分析(7)—— neutron-l3-agent HA solutions

时间:2014-07-18 15:01:27      阅读:389      评论:0      收藏:0      [点我收藏+]

标签:des   style   blog   http   color   os   

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,布布扣,bubuko.com

Neutron分析(7)—— neutron-l3-agent HA solutions

标签:des   style   blog   http   color   os   

原文地址:http://www.cnblogs.com/feisky/p/3853151.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!