OpenStack年底总结



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

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

    控制节点HA

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

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

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

    计算节点HA

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

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

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

    http://www.mlf360.com/gh_ee7fb4a47c65/400786106_1_5a423bc17eb4beeb217443c00ef298cb.html

    http://mlf360.com/gh_ee7fb4a47c65/400796761_1_60d66107737a2deb26d732ee8e63b583.html

    非常值得读读的文章。以后OpenStack上的机器人,估计就只能指望这个了。

    增量快照和备份

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

    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_thumb.png

    目前默认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打交道。

    原文链接: http://www.chenshake.com/end-of-openstack-summary/


登录后回复
 

与 青云QingCloud 社区 的连接断开,我们正在尝试重连,请耐心等待