到年底了,很多朋友找我聊天,经常问OpenStack企业使用过程中有啥问题。这些问题,目前有啥解决的办法,社区是如何考虑的。
现在的很多信息都在微信,微博里提到。这里就做一个总结。上周和朋友交流,突然发现3年前,我们在外面吹的功能,其实现在都已经实现。估计我们现在在吹的功能,需要3年后才能真正实现。
控制节点HA
Mirantis实现的控制节点的HA的方案,一直都是大家学习的对象,目前OpenStack控制节点的所有组件基本都实现了高可用,Mantis甚至把Zabbix也放到控制节点上,实现了高可用。
如果用户对控制节点进行严格测试,其实还是能发现有点美中不足的地方。当3个控制节点的其中一个挂掉后,你创建虚拟机,会有一部分失败。这其实也是Mirantis一直在解决。目前各家解决问题的方式不太一样,希望社区可以有一个完整的方案
朱荣泽做了一个很好的总结,大家可以点击这里
计算节点HA
对于vmware用户来说,一个节点挂掉后,上面的虚拟机自动跑到别的机器上,这是一个很顺其自然的事情。Qingcloud其实也专门介绍过他们如何解决这个问题,每个机器都有一个机器人,机器人互相通讯,一旦有人失联,马上就知道,从集群里拿掉。以前青云一个节点挂掉后,从另外一个节点把机器把虚拟机启动起来,大概是5分钟左右。
对于OpenStack来说,确认一个节点挂掉,好像方法很多,监控,脚本,但是这些其实真正使用过程,你就会发现很多问题,还不如邮件通知,人工确认再迁移。
目前社区里项目很多,不过真的没有一个真正能解决这个问题的。上个月海云捷迅的朋友在东京峰会上做了一个分享,基于Consul提出了一套分布式的健康检查的方案。Consul是一个在容器和微服务技术圈子里比较有名的项目,主要的功能是提供服务注册和发现、配制变更。
增量快照和备份
对于企业用户来说,考虑最多的就是数据的安全。如何对虚拟机做快照和备份,就是一个经常问到的问题。
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可以早日实现备份的链条,图来自青云
目前默认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打交道。
关于:中科研拓
深圳市中科研拓科技有限公司专注提供软件外包、app开发、智能硬件开发、O2O电商平台、手机应用程序、大数据系统、物联网项目等开发外包服务,通过IT技术实现创造客户和社会的价值,成为优秀的软件公司,通过客户需求导向、开放式创新、卓越运营管理等战略的实施,全面打造公司的核心竞争力。联系电话400-0316-532,邮箱sales@zhongkerd.com,网址www.zhongkerd.com