• 1
  • 2
  • 3
  • 4
  • 5
阿里云主机ECS 首 页  »  帮助中心  »  云服务器  »  阿里云主机ECS
2015年度OpenStack 总结
发布日期:2016-3-3 21:3:29

  2015年度OpenStack 总结

  一些人经常问OpenStack企业使用过程中有什么问题。关于这些问题,目前有什么解决的办法,社区是如何考虑的。

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

  控制节点HA

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

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

  计算节点HA

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

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

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

  增量快照和备份

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

  OpenStack的虚拟机的存储,一般有本地存储,分布式存储(Ceph),cinder存储(lvm),虚拟机的文件格式有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可以早日实现备份的链条,如下图所示:

  

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

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

  https://github.com/Akrog/cinderback

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

  监控和测试

  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的各种方案都用好,就是一件非常有意义的事情。

  存储管理

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

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

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

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

  SDN

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

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

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

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

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