26
http://99cloud.net/ neutron 闲谈

neutron 闲谈 - Meetupfiles.meetup.com/10602292/Neutron-meetup2014-1-10.pdf · 内容 Neutron的openstack位置 neutron 的发展路程 使用者的neutron入门 开发者debug neutron

  • Upload
    others

  • View
    20

  • Download
    0

Embed Size (px)

Citation preview

Page 1: neutron 闲谈 - Meetupfiles.meetup.com/10602292/Neutron-meetup2014-1-10.pdf · 内容 Neutron的openstack位置 neutron 的发展路程 使用者的neutron入门 开发者debug neutron

http://99cloud.net/

neutron 闲谈

Page 2: neutron 闲谈 - Meetupfiles.meetup.com/10602292/Neutron-meetup2014-1-10.pdf · 内容 Neutron的openstack位置 neutron 的发展路程 使用者的neutron入门 开发者debug neutron

http://99cloud.net/

About me

openstack 私有云解决方案和实施

openstack 公有云解决方案和实施

openstack / vmware 培训

北京

上海

无锡

湖州

Page 3: neutron 闲谈 - Meetupfiles.meetup.com/10602292/Neutron-meetup2014-1-10.pdf · 内容 Neutron的openstack位置 neutron 的发展路程 使用者的neutron入门 开发者debug neutron

http://99cloud.net/

内容

● Neutron 的 openstack 位置● neutron 的发展路程● 使用者的 neutron 入门● 开发者 debug neutron

● kilo 版, neutron 灾难还是福祉

Page 5: neutron 闲谈 - Meetupfiles.meetup.com/10602292/Neutron-meetup2014-1-10.pdf · 内容 Neutron的openstack位置 neutron 的发展路程 使用者的neutron入门 开发者debug neutron

http://99cloud.net/

Compute

Storage

Network

Nova

Swift (Objects)

Glance (Images)

*-as-a-Service Capability OpenStack Service

Neutron

Cinder (Block)

identity Keystone

Neutron-NaaS

Page 6: neutron 闲谈 - Meetupfiles.meetup.com/10602292/Neutron-meetup2014-1-10.pdf · 内容 Neutron的openstack位置 neutron 的发展路程 使用者的neutron入门 开发者debug neutron

http://99cloud.net/

neutron 前世● nova-network

– Flat,FlatDHCP 模式 : 单一广播域– VLan 模式:可以给特定租户创建 VLAN 网络

● Nicira

– 2012-8-30 VMware 今日宣布将以 12.6 亿美元收购软件定义网络 (SDN)公司 Nicira

● quantum -> neutron

● 比 nova-network

– 复杂,灵活,难用?– 把网络模型抽象出来,为 IaaS 的网络展开了无限空间

Page 7: neutron 闲谈 - Meetupfiles.meetup.com/10602292/Neutron-meetup2014-1-10.pdf · 内容 Neutron的openstack位置 neutron 的发展路程 使用者的neutron入门 开发者debug neutron

http://99cloud.net/

neutron 项目法律注册信息

Networking: codename: Neutron ptl: Kyle Mestery (mestery) mission: > To implement services and associated libraries to provide on-demand, scalable, and technology-agnostic network abstraction. url: https://wiki.openstack.org/wiki/Neutron projects: - repo: openstack/neutron integrated-since: folsom - repo: openstack/python-neutronclient - repo: openstack/neutron-fwaas - repo: openstack/neutron-lbaas - repo: openstack/neutron-specs - repo: openstack/neutron-vpnaas

source: https://git.openstack.org/cgit/openstack/governance/tree/reference/programs.yaml

1

2

345

6

Page 8: neutron 闲谈 - Meetupfiles.meetup.com/10602292/Neutron-meetup2014-1-10.pdf · 内容 Neutron的openstack位置 neutron 的发展路程 使用者的neutron入门 开发者debug neutron

http://99cloud.net/

使用者 - 了解 Neutron

Page 9: neutron 闲谈 - Meetupfiles.meetup.com/10602292/Neutron-meetup2014-1-10.pdf · 内容 Neutron的openstack位置 neutron 的发展路程 使用者的neutron入门 开发者debug neutron

http://99cloud.net/

经典的工作流程● 管理员

– 创建 floatingip 网络– 在网络创建 floatingip 子网

● 租户– 创建租户网络– 在网络中创建子网– 在网络上创建虚拟机(系统会创建 port ) , 虚拟机就会有在子网上的 IP 地址– 创建路由器– 绑定路由器到子网– 创建 floatingip ,绑定 floatingip 到虚拟机

https://www.ustack.com/blog/neutron_intro/

Page 10: neutron 闲谈 - Meetupfiles.meetup.com/10602292/Neutron-meetup2014-1-10.pdf · 内容 Neutron的openstack位置 neutron 的发展路程 使用者的neutron入门 开发者debug neutron

http://99cloud.net/

开发者 -neutron

● https://wiki.openstack.org/wiki/Neutron– Slides on Technical Architecture of Neutron

https://onedrive.live.com/view.aspx?resid=8F95A76243630FB1!127&app=PowerPoint&authkey=!AK0Y3KWzD6o3WVI● http://docs.openstack.org/developer/neutron/devref/a

pi_layer.htm– deep dive into neutron

http://www.slideshare.net/gongys2004/inside-neutron-2

Page 11: neutron 闲谈 - Meetupfiles.meetup.com/10602292/Neutron-meetup2014-1-10.pdf · 内容 Neutron的openstack位置 neutron 的发展路程 使用者的neutron入门 开发者debug neutron

http://99cloud.net/dhcp agent RPC handler

Page 12: neutron 闲谈 - Meetupfiles.meetup.com/10602292/Neutron-meetup2014-1-10.pdf · 内容 Neutron的openstack位置 neutron 的发展路程 使用者的neutron入门 开发者debug neutron

http://99cloud.net/subnets list API

Page 13: neutron 闲谈 - Meetupfiles.meetup.com/10602292/Neutron-meetup2014-1-10.pdf · 内容 Neutron的openstack位置 neutron 的发展路程 使用者的neutron入门 开发者debug neutron

http://99cloud.net/

kilo neutron 的第六版

Page 14: neutron 闲谈 - Meetupfiles.meetup.com/10602292/Neutron-meetup2014-1-10.pdf · 内容 Neutron的openstack位置 neutron 的发展路程 使用者的neutron入门 开发者debug neutron

http://99cloud.net/

14

Layers in neutron server

Core REST APIExtension A REST API

Extension … REST API

AuthN/AuthZ/Input Validation/Output view

Core Plugin InterfaceService A Plugin Interface

Service … Plugin Interface

Core Plugin (Vendor specific)

agentsService … PluginService A Plugin

neutron 定制的控制器

http://docs.openstack.org/developer/neutron/devref/api_layer.html

Page 15: neutron 闲谈 - Meetupfiles.meetup.com/10602292/Neutron-meetup2014-1-10.pdf · 内容 Neutron的openstack位置 neutron 的发展路程 使用者的neutron入门 开发者debug neutron

http://99cloud.net/

current neutron

Neutronserver

Pluginagent

DHCPagent

DB Queue

l3-agent

metadata-agent

Page 16: neutron 闲谈 - Meetupfiles.meetup.com/10602292/Neutron-meetup2014-1-10.pdf · 内容 Neutron的openstack位置 neutron 的发展路程 使用者的neutron入门 开发者debug neutron

http://99cloud.net/

REST API refactor pecan

● 问题– neutron 自制 rest controller 维护成本– 参数传递 dict 方式– API workers

– http API 和消息 consumer 在一起

● 解决– pecan and pecan hook

– rest server 和 amqp consumer 分开,使其部署更加方便

Page 17: neutron 闲谈 - Meetupfiles.meetup.com/10602292/Neutron-meetup2014-1-10.pdf · 内容 Neutron的openstack位置 neutron 的发展路程 使用者的neutron入门 开发者debug neutron

http://99cloud.net/

new neutron

NeutronAPI server

Pluginagent

DHCPagent

DB Queue

l3-agent

metadata-agentNeutronAMQP server

Page 18: neutron 闲谈 - Meetupfiles.meetup.com/10602292/Neutron-meetup2014-1-10.pdf · 内容 Neutron的openstack位置 neutron 的发展路程 使用者的neutron入门 开发者debug neutron

http://99cloud.net/

Introduce a new plugin interface

● BP https://github.com/openstack/neutron-specs/blob/master/specs/kilo/plugin-interface-perestroika.rst

● 问题:– 现在的 plugin 是 operation oriented 的,– 所有 API 资源都是以 dict 传到这些操作中去的– 现在 plugin 的有些操作变得非常庞大,难以维护

● 解决:– 引入资源对象,把每种资源都封装成一个类

net = Network(...)net.validate()plugin.network_manager.create(net)

Page 19: neutron 闲谈 - Meetupfiles.meetup.com/10602292/Neutron-meetup2014-1-10.pdf · 内容 Neutron的openstack位置 neutron 的发展路程 使用者的neutron入门 开发者debug neutron

http://99cloud.net/

Page 20: neutron 闲谈 - Meetupfiles.meetup.com/10602292/Neutron-meetup2014-1-10.pdf · 内容 Neutron的openstack位置 neutron 的发展路程 使用者的neutron入门 开发者debug neutron

http://99cloud.net/

Plugin 拆分● BP https://blueprints.launchpad.net/neutron/

+spec/core-vendor-decomposition

● 问题:– 过多的三方 plugin 代码消耗了社区的资源– 每个 plugin 的测试用例也耗费真正社区开发者的时

Page 21: neutron 闲谈 - Meetupfiles.meetup.com/10602292/Neutron-meetup2014-1-10.pdf · 内容 Neutron的openstack位置 neutron 的发展路程 使用者的neutron入门 开发者debug neutron

http://99cloud.net/

Plugin 拆分● 解决方法:

– 把 vendor plugin 包括 unit tests 全部移出去,代码由vendor 自行管理,但是要求 binary 放到一个可以公共访问到的地方

– 构建一个 plugin 框架,使得在配置文件中能轻易使用这些 vendor plugin

Page 22: neutron 闲谈 - Meetupfiles.meetup.com/10602292/Neutron-meetup2014-1-10.pdf · 内容 Neutron的openstack位置 neutron 的发展路程 使用者的neutron入门 开发者debug neutron

http://99cloud.net/

l2 agent 重构● 问题

– 在大规模部署下,启动性能太差,网络中断问题– RPC , resync

– ovs monitor

– update service status

● 解决– rpc 批量处理 port update status

– 使用 python lib of ovs to get notification of ovs port

– Smart resync

– Avoid processing a device when there's no need● for example port's ip and mac change should lead to sg reapplying

Page 23: neutron 闲谈 - Meetupfiles.meetup.com/10602292/Neutron-meetup2014-1-10.pdf · 内容 Neutron的openstack位置 neutron 的发展路程 使用者的neutron入门 开发者debug neutron

http://99cloud.net/

l3agent 重构

● 问题– l3 agent 现在实现在一个大的 python 文件中, 2000 多行– 很到逻辑都参杂在一起,特别是 DVR 和 L3 HA 来了之

后,代码量暴增, IF 分支随处可见– l3 agent 和其它的服务比如 vpn 和 fwaas 界线不清晰

● 解决– 重构成更加面向对象的代码– 用聚合而不是用继承来解决 VPN 和 fwaas 服务的问题

Page 24: neutron 闲谈 - Meetupfiles.meetup.com/10602292/Neutron-meetup2014-1-10.pdf · 内容 Neutron的openstack位置 neutron 的发展路程 使用者的neutron入门 开发者debug neutron

http://99cloud.net/

advanced service plugin

● 问题:– lbaas, vpn

– reviewers 的知识面问题– 发展缓慢

● 解决– 拆分有利于集中专业人员做专业的事情– 提高相关服务的发展速度

Page 25: neutron 闲谈 - Meetupfiles.meetup.com/10602292/Neutron-meetup2014-1-10.pdf · 内容 Neutron的openstack位置 neutron 的发展路程 使用者的neutron入门 开发者debug neutron

http://99cloud.net/

kilo 版

● Junu 版对 Icehouse 版在性能和稳定性上有所改进, DVR 和 l3 HA 的可用性?

● Kilo 版将大规模重构

Page 26: neutron 闲谈 - Meetupfiles.meetup.com/10602292/Neutron-meetup2014-1-10.pdf · 内容 Neutron的openstack位置 neutron 的发展路程 使用者的neutron入门 开发者debug neutron

http://99cloud.net/

谢谢