Jan 282016
 

经常有朋友问,国内大概有多少位OpenStack项目的Core。这个问题,现在其实不太好回答,如果需要准确统计的话。下面仅仅是一个大概估计,有遗漏的,希望朋友指出,我来补全。

文档修改历史

2016年2月2日:增加IBM的刘光亚。EMC统计有误,去掉。

现在OpenStack项目在 github.com/openstack, 已经超过600多个项目,并且还是迅速增加。这个数量那么高,其实还和项目的拆分有关。例如一个glance项目,他就拆分成 多个模块。Modules: glance, glance-specs, glance_store, python-glanceclient

就算这种大项目,OpenStack目前应该也应该超过100多个。

OpenStack官方的对项目的最新定义,6个为核心项目

  1. Keystone
  2. Nova
  3. Glance
  4. Neutron
  5. Cinder
  6. Swift

国内其实除了swift以外,各个项目都是有Core的。

  • Glance项目的Core:FeiLog Wang, 以前IBM,目前已经在新西兰Catalyst IT
  • Cinder项目core: Huang Zhiteng,以前Intel,目前在eBay
  • Neutron项目Core: Yong Sheng Gong,以前IBM,目前在九州云,精力已经集中在OpenDayLight。
  • Oslo项目Core:Zhongyue Luo,韩国人,在中国Intel工作并取得Core,目前还在Intel,不过已经在搞大数据,退出Oslo项目。
  • Mistral项目Core:Lingxian Kong,以前华为的Core,目前已经去新西兰 Catalyst IT

对于搭建一个OpenStack平台来说,至少OpenStack官方是认为上面6个组件是核心,使用的最广泛。其实在大量的OpenStack部署场景里,swift出现的数量是不多的。

OpenStack的Core的提名,其实在过去还是比较神秘的。

Snap1

我们就先统计分析一下目前Mitaka版本Core的情况,其实每个OpenStack版本,这个变化也挺大,Core也是需要换工作,也可能兴趣转移,不玩这个项目。

总结

项目 core数量  
Heat 3 IBM 2位,华为1位
Ceilometer 3 IBM,华为,HPE
Horizon 1 华为
iRonic 1 IBM
Kolla 1 99cloud
oslo 1 EasyStack
Senlin 5 IBM3位,99cloud1位,vmware1位
Keystone 1 intel
Puppet 1 Unitestack
Nova 1 Intel
i18n 1 IBM
Magnum 4 IBM2位,华为2位
Rally 2 华为,麒麟各一位
SearchLight 1 麒麟

IBM中国区

IBM在中国的OpenStack发展,基本是黄埔军校的角色,培养了大量的人才,并且有足够板凳深度。经历过多次的人员流失,目前在OpenStack上的实力,还是很强的。这点上,你还是必须佩服他。

Qiming Teng

http://stackalytics.com/?release=mitaka&company=ibm&user_id=tengqim

Senlin项目的PTL,并且还是Heat项目的Core。Senlin项目的发起者。

目前OpenStack项目众多,如何让一个项目活跃起来,其实真的不是一件容易的事情。如何吸引更多的公司派员工参与进来,这是一件比较挑战的活。

Ying Chun Guo

http://stackalytics.com/?company=ibm&user_id=daisy-ycguo

I18n项目的PTL,负责把OpenStack项目国际化,所以目前大家在Dashboard看到的汉化和多种语言,基本的Guo的努力分不开的。还有组织了国内很多OpenStack的技术交流。

Yanyan Hu

http://stackalytics.com/?release=mitaka&company=ibm&user_id=yanyanhu

这是是Senlin项目的Core。

Ethan Lynn

http://stackalytics.com/?company=ibm&user_id=ethanlynn

也是Senlin项目的Core,同时也是Heat的core。

Kai Qiang Wu(Kennan)

http://stackalytics.com/?company=ibm&user_id=wkqwu

magnum项目的Core。Magnum项目是是容器在OpenStack实现管理。还是非常吸引人的。项目的发作者是目前Kolla的PTL,当时一个人担任两个项目的PTL,后来放弃了magnum,专攻Kolla项目。

Jay Lau

http://stackalytics.com/?company=ibm&module=magnum&user_id=jay-lau-513

magnum项目的Core。刘光亚。

Haomeng,Wang

http://stackalytics.com/?company=ibm&user_id=whaom

ironic项目的Core,这是提供国内用户最关注的一个需求,所谓的裸机管理,把x86服务器当虚拟机来管理。

Intel中国

Intel中国对OpenStack的支持力度是很大的,估计王庆当选独立董事后,中国区OpenStack的投入应该会加大。

Alex Xu(He Jie Xu)

http://stackalytics.com/?company=intel&user_id=xuhj

这位是最新提名的Nova的Core。Intel是生产Cpu的,以前居然没有Nova的项目的Core,这次真的来的及时。

常人估计还不太了解拿下nova项目Core的难度。

从H版本Nova项目,一直做到现在,都快3年,每个版本都保持commit和review的数量,都是比较惊人的。

版本 commit review
Havana 76 272
Icehouse 23 255
Juno 41 307
Kilo 62 543
Liberty 55 444

 

基本可以这样说,国内所有人在Nova项目贡献,加起来估计都没这位老兄多。并且还在不停做BP。真的是所有的Core的学习榜样。

Dave Chen

http://stackalytics.com/?company=intel&user_id=wei-d-chen

这是是刚刚提名的Keystone项目Core,也是一个无比艰难的项目。这个项目需要你的知识真的很丰富,安全,身份认证有关,折腾ladp,AD。

Lianhao Lu

http://stackalytics.com/?company=intel&user_id=lianhao-lu

Ceilometer项目的Core。

Vmware中国

Cindia-blue

http://stackalytics.com/?company=vmware&user_id=miaoxinhuili

senlin项目的Core,应该算是国内第一位女Core。

华为中国区

华为也培养了不少的Core。

Huang Tianhua

http://stackalytics.com/?company=huawei&user_id=huangtianhua

Heat项目的Core。

Zhenguo Niu

http://stackalytics.com/?company=huawei&user_id=niu-zglinux

这是Horizon项目的Core,也是我最熟悉的Core。

Liusheng

http://stackalytics.com/?company=huawei&user_id=liusheng

Ceilometer项目的Core

Kun Huang

http://stackalytics.com/?company=huawei&user_id=academicgareth

rally项目的Core,这是做OpenStack测试的项目,还是很有价值的。

Hua Wang

http://stackalytics.com/?company=huawei&module=magnum&user_id=humble00

Magnum项目Core,OpenStack管理Docker

hongbin

http://stackalytics.com/?company=huawei&module=magnum&user_id=hongbin034

Magnum项目Core,OpenStack管理Docker

HPE中国区

HP拆分后,OpenStack的贡献也分成两部分。HP和HPE。目前HPE中国区这边,应该就只有一位Core。

ZhiQiang Fan

http://stackalytics.com/?user_id=aji-zqfan&release=mitaka

Ceilometer的Core,这位朋友以前是在华为,拿到Ceilometer的Core,跳槽到HP。

99Cloud

国内OpenStack创业公司

Lawrance

http://stackalytics.com/?company=99cloud&user_id=jing

senlin项目的Core

Jeffrey Zhang

http://stackalytics.com/?company=99cloud&user_id=jeffrey4l

Kolla项目的Core。这也是我目前最关注的项目。是集成Ansible,Docker,Mesos来部署OpenStack。希望Jeffrey Zhang同学可以让Kolla项目早日生产使用。

EasyStack

国内OpenStack创业公司

ChangBo Guo(gcb)

http://stackalytics.com/?company=easystack&user_id=glongwave

Oslo项目的Core。目前在该项目的贡献排名还是非常高的,坚持下去啊。

UnitedStack

国内的OpenStack创业公司

Yuxingchao

http://stackalytics.com/?user_id=yuxcer&release=mitaka&company=unitedstack

Puppet项目的Core,可以说是国内OpenStack的Puppet上玩的可能是最熟练的。

麒麟云Kylin Cloud

Li Yingjun

http://stackalytics.com/?company=kylin%20cloud&user_id=liyingjun

rally项目的Core。OpenStack项目验收就指望这个。同时也是Searchlight的Core。又一个双Core。

Dec 102015
 

到年底了,很多朋友找我聊天,经常问OpenStack企业使用过程中有啥问题。这些问题,目前有啥解决的办法,社区是如何考虑的。

现在的很多信息都在微信,微博里提到。这里就做一个总结。上周和朋友交流,突然发现3年前,我们在外面吹的功能,其实现在都已经实现。估计我们现在在吹的功能,需要3年后才能真正实现。

控制节点HA

Mirantis实现的控制节点的HA的方案,一直都是大家学习的对象,目前OpenStack控制节点的所有组件基本都实现了高可用,Mantis甚至把Zabbix也放到控制节点上,实现了高可用。

如果用户对控制节点进行严格测试,其实还是能发现有点美中不足的地方。当3个控制节点的其中一个挂掉后,你创建虚拟机,会有一部分失败。这其实也是Mirantis一直在解决。目前各家解决问题的方式不太一样,希望社区可以有一个完整的方案

朱荣泽做了一个很好的总结,大家好好看看http://way4ever.com/?p=3121

目前OpenStack的组件实现HA,Cinder的问题最多,红帽的官方文档专门提到,Cinder目前无法实现HA。

下面内容来自我的广东老乡Tobe 他的微博里的提到的

目前基于AMQP的cinder-volume active-active架构都是有问题,详情参考 http://gorka.eguileor.com/cinder-ha-aa-specs-for-review/

OpenStack有spec计划Mitaka可能解决这些问题 https://specs.openstack.org/openstack/cinder-specs/specs/mitaka/cinder-volume-active-active-support.html

Gorka大神还写过blog分析了RabbitMQ存在的问题不能只改host来解决

http://gorka.eguileor.com/a-cinder-road-to-activeactive-ha

 

计算节点HA

对于vmware用户来说,一个节点挂掉后,上面的虚拟机自动跑到别的机器上,这是一个很顺其自然的事情。Qingcloud其实也专门介绍过他们如何解决这个问题,每个机器都有一个机器人,机器人互相通讯,一旦有人失联,马上就知道,从集群里拿掉。以前青云一个节点挂掉后,从另外一个节点把机器把虚拟机启动起来,大概是5分钟左右。

对于OpenStack来说,确认一个节点挂掉,好像方法很多,监控,脚本,但是这些其实真正使用过程,你就会发现很多问题,还不如邮件通知,人工确认再迁移。

上个月海云捷迅的朋友在东京峰会上做了一个分享,基于Consul提出了一套分布式的健康检查的方案。Consul是一个在容器和微服务技术圈子里比较有名的项目,主要的功能是提供服务注册和发现、配制变更。

分布式健康检查:实现OpenStack计算节点高可用

九州云的荆留清的同学,也分享了在九州云的产品里,如何解决这个问题的思路,

OpenStack虚拟机HA方案

这两种思路,自己选择适合自己的。

 

增量快照和备份

对于企业用户来说,考虑最多的就是数据的安全。如何对虚拟机做快照和备份,就是一个经常问到的问题。

OpenStack的虚拟机的存储,一般有本地存储,cinder存储(lvm),分布式存储(Ceph),虚拟机的文件格式有QCOW2和Raw格式。如何实现快照,增量的快照,并且能把增量的部分备份出来。这是一个非常有挑战性的活。

在红帽的roadmap里,明年要实现内存快照 https://videos.cdn.redhat.com/summit2015/presentations/12752_red-hat-enterprise-virtualization-hypervisor-kvm-now-in-the-future.pdf

对于Cinder来说,有cinder backup,你可以把卷都备份到swift或者Ceph的对象存储上,能不能做到增量,还有qemu的快照是否可靠,这都是有挑战的活。

在Ceph上,社区也整整搞了两年的整合,目前据说这是最后一个壁垒 https://review.openstack.org/#/c/205282/

希望OpenStack可以早日实现备份的链条,图来自青云

Snap32

目前默认Openstack把快照变成一个镜像模板的做法,真的是有点恶心。

其实对我来说,Ceph跑分布式块存储,备份到swift的对象存储上,这样的方案,还是比较不错的。如果Ceph备份到自己的对象存储上,风险还是没有降低。

https://github.com/Akrog/cinderback

目前Horizon的UI,是有备份的功能,不过这个估计用的人太少,估计问题也不少。

存储管理

现在分布式存储,已经有要进入企业的趋势,例如Ceph,Swift。对于这些分布式的存储的维护工作,真的是一场恶梦。因为目前这些分布式群集的维护,其实都是通过命令行,例如你的群集增加,减少一个节点,哪怕增加一块硬盘,一块硬盘损坏,卸载掉,都是通过命令行来维护。

命令行维护,其实压力很大,一不小心,整个群集就完蛋。人都是难免出错。

Intel开源了一个Ceph可视化管理的项目 https://github.com/01org/virtual-storage-manager 做的非常不错,目前项目也非常活跃。web UI是采用Horizon,看起来很熟悉。

Swift,其实已经发布了五年,其实功能本是是足够稳定,不过你真的玩起来,你就会发现,没有专人维护,根本不行。swiftstack的公司,就是靠一套web管理的平台,养活了公司50号人,可以看出对存储系统的web管理,是刚需啊。

监控和测试

Mirantis是OpenStack的技术风向标,Fuel6.1开始引入InfluxDB/Grafana和ELK,完善OpenStack的监控。Grafana展示的效果是非常炫,结合Zabbix,那么在物理机器上的监控,已经算是比较完善。

对于用户来说,一直抱怨的就是虚拟机内存的数据监控不准确。这个问题一直都没有得到很好解决。

指望ceilometer,那基本是不靠谱。通常的做法就是通过qemu的agent,乐视的朋友分享过一篇文章

http://www.cloudcraft.cn/use-qemu-guest-agent-to-change-openstack-instance-root-password/

监控的数据的存储和展示,一直都是ceilometer社区折腾的问题。

OpenStack是否稳定可靠,不是靠拍胸口的。要保证OpenStack的稳定运行,监控和健康检查,其实是必不可少。这方面社区有项目Rally,还有Mirantis的Fuel,也集成了Tempest测试,用户可以选择空闲的时候,对群集进行测试,发现潜在问题。

http://www.ibm.com/developerworks/cn/cloud/library/1403_liuyu_openstacktempest/

把目前OpenStack的各种方案都用好,就是一件非常有意义的事情。

SDN

对于企业来说,目前OpenStack的网络功能,应该是基本够用,性能其实也都还可以。Neutron+vlan的方案,应该是能满足大部分企业的需求。

至于网络的QOS,目前其实也在逐步支持,OVS据说已经实现。linux bridge正在开发。

目前社区也就考虑逐步降低网络的复杂性,把文档里的OVS,替换成linux Bridge。这样至少对我来说,也感觉可控多了。

对于SDN需求,应该是物理机器的管理,这就是iRonic项目要做的事情。就是把物理机器当成虚拟机管理。

把物理机器装好系统,这目前来说,应该是很简单事情,关键的装完后,如何放到他希望的网络里。需要用neutron调用插件去管理交换机。当然也是需要和IPMI打交道。

Dec 022015
 

其实我本人网络方面一直都比较薄弱,为了逼自己学习,就是写写文档,帮助自己的理解。估计大家看完,就可以了解到我的Neutron网络的理解,还是比较肤浅。

Snap19

解析一个东西,写一堆,真的不如一个图,这个真的是深刻体会。这个图是老外的书里的。

Snap29

上面两张图,表达的意思,基本是一样的。

Neutron,其实和其他的OpenStack组件差不多,他都是一个中间层,自己基本不干具体的活,通过插件的机制,调用第三方的组件来完成相关的功能。

对于Neutron来说,在Havana版本前,支持Linux Bridge和Openvswitch两种插件。后来发现直接通过Neutron去调用插件的方式,有些不够理想

  1. linux bridge和ovs,实现功能的代码,其实有很大部分是重复的,这样让人感觉很不爽
  2. 出于功能和性能的考虑,有些场景下,需要同时使用linux bridge和OVS,采用这种直接调用插件的模式,是无法实现的。

在H版本以后,社区就推出一个Neutron插件 Modular Layer 2 (ml2) plugin,这个插件底下调用linux bridge和ovs两个Driver。

linuxbridge和OVS,可以干的活是支持不同的网络,目前这两种Driver,都可以实现下面几种网络功能。

  1. local
  2. flat
  3. vlan
  4. vxlan
  5. GRE (linux bridge 不支持)

那么这5种网络里,local网络,主要是用于测试,GRE网络,目前社区已经基本处于维护,大家基本也可以不考虑。所以大家只需要了解其中3种就可以。

OpenStack的网络里,可以有4种的网络流量

  1. 管理网络:消息队列和数据库访问的网络
  2. API网络:外部调用API
  3. External:连接外网(provider 网络)
  4. Guest:虚拟机互相通讯网络 (Tenant 网络)

4种网络里,和Neutron有关的就是External和Guest,Provider网络和Tenant 网络。

对于Provider 网络和Tenant 网络,技术实现基本都是一样的,区别仅仅在于

  • Provider 网络,是有管理员创建
  • Tenant 网络,是由用户自己创建

Provider 网络,常用的网络是:Flat和Vlan。vxlan基本是没有使用的可能性。

Tenant 网络,可以设置的选项就是 vlan,vxlan和flat,local主要是测试使用。