Jul 172014
 

上个月Openstack周末聚会,听完UnitedStack的Xuxin的演讲,真的非常震撼,分享了太多东西,7月15号,他们正式发布了他们的产品。我比较幸运,我其实听过好几遍他们的产品介绍,所以了解的比较多一点。同时也介绍一下他们是如何解决困惑Openstack的很多技术问题。

参加发布会的朋友都知道,程辉的解决方案=SSD+万兆+Ceph+Neutron OVS,剩下的就是Puppet管理。

采用3.12的内核,2.0以上的OVS。

成本

我在会场上和朋友聊程辉的解决方案,大家质疑一点,ssd成本,万兆成本,这样怎么玩呢?发布会上程辉没时间详细介绍这块。

SSD单块成本,肯定是比Sas盘高,用SSD可以获得很高的性能,那么有什么办法让SSD的成本降低呢?你使用SAS盘,为了提高性能,用户申请1T的空间,为了性能,你就必须分配1T的空间给他,不然随机读写性能就会差很多,这个时候你面临很痛苦的问题,用户只使用10M,他却占用你的1T空间。但是SSD,我可以只需要给用户分配30M就可以,用户使用多少,我就分配多少空间,我不需要担心随机读写的性能。

估计你马上就可以想到,机器的硬盘,我也不需要一次都购买,可以只插1块硬盘,快用完我再增加。这样可以大大节省你一次性的投入,等待硬盘降价。

玩公有云,玩的就是复用,看谁的复用水平更高,cpu,内存,存储,带宽。这样才能降低成本。

SSD其实还有一个很大的优势,不需要用cache,其实为了提高性能,大家都在拼命想办法把cache用起来,用cache的最大的问题,在突发情况下,很容易丢失数据。这就是所谓存储要讲良心啊。

SAS硬盘,通过底层文件系统的深入,实现的性能的榨干,这个目前青云已经做到的极致,实现这个,真的需要很长时间的积累才能做到。这种方式的一个明显的问题就是没实现存储的复用,估计如果使用qcow2格式,性能会下降很厉害。

用SSD,实现的存储的复用,不过的确是没有把存储的性能压榨干净。另外其实Ceph对IO的损耗,其实是很厉害的,这个都是后续改进的地方。

刚看到ssd的价格

英特尔于今日开售企业级固态硬盘Pro 2500。120GB版本售价95美元,180GB版本为130美元,240GB版本为160美元,480GB版本为305美元。提供五年质保。http://www.cnbeta.com/articles/312425.htm

计算和存储合并

受传统的技术方案影响,计算和存储是分开的。你需要有一个专门的存储网络,让计算节点访问。对于企业内部使用,其实问题不大,不过对于公有云来说,面临的问题就很多

  1. 计算和存储的带宽是多少比例,因为所有的虚拟机的IO都是通过网络访问,网络的压力很大。成本也很高,你也很难规划
  2. 存储无法扩展,一个存储节点,如果挂掉怎么办。如果是分布式的存储,那么带宽就是一个严重的问题,限制你的扩展
  3. 有些设计是虚拟机的系统盘在本地,数据盘在存储里,这样导致无法实现迁移

把计算和存储合并,你获得的好处就是

  1. 简单,你只需要购买一种服务器就可以,
  2. 把机器的资源压榨更加干净
  3. 把虚拟机的系统盘和数据盘都放在分布式存储上,确保不丢失任何的数据
  4. 迁移变得更加简单,由于采用分布式,迁移的时间就更短。

任何方案,有优势,就必然会有挑战

  1. 计算和存储,尤其是分布式存储,都是非常消耗内存和cpu资源,如何实现隔离,这是高难度的活
  2. 所有的数据,都在Ceph上,鸡蛋都在一个篮子里,你如何确保不出问题,压力就更大了。

怎么解决这个问题呢?

UnitedStack团队通过cgroup进行隔离,保证计算和存储互相不影响。

如何证明Ceph的可靠,其实最佳的解决办法就是在公有云这种恶劣的环境下,稳定运行1年,那么大家就都有信心。

Update

Openstack的更新,是一个无法回避的话题,那么如何更新,那么老外已经给出两种方式

  1. 持续迭代,2周更新一次,这个需要强大的技术团队支撑,目前Hpcloud和Rackspace都是这样,目前Unitedstack也是这种方式进行更新
  2. 一个版本更新一次,企业一般采用这种方案

2周更新一次,需要哪些前提条件呢,你如何测试?建立一套完整的自动化测试,那是必不可少的。上次有幸看到他们的内部的自动化测试系统,真的很酷啊,传说中的自动化测试,原来并不遥远。

代码测试完,打包,puppet推送,那一整套机制,都是需要长时间,非常有经验的的团队,才能建立出来的。肯定没有我写的那么简单。

这个真的是UnitedStack的核心啊,只有建立好这套自动化测试的体系,你才可能做出好的产品。

关于这块,你可以看http://www.osforce.cn/openclass/85/show??fr=weibo&mu=140609MwfkTx

或者哪天让程辉好好讲讲这块。

网络

Unitedstack的网络是基于万兆,很多人都担心万兆的成本。其实现在万兆的成本已经很低,当然还有很多办法省钱,这方面Dell的优势就非常明显。

另外Neutron上,UnitedStack已经实现了高可用,这可是完全基于Neutron+OVS实现,这个在全球来讲,都是很难得的,目前也基本是唯一的。

网络的性能问题,其实我相信目前所有基于软件的,都会面临很大的挑战,目前采用最高版本的内核和OVS,部分解决了性能的问题,后续应该有很大的改进空间。万兆和SSD,应该可以换取出不少改进的时间。

  33 Responses to “UnitedStack技术分享总结”

  1. 曾经走过计算和存储同一节点的弯路,现在回到分开的路上,这其实不是个技术问题,但是也交了很贵的学费才醒悟过来

    • 不是技术问题?还真没理解。

      • 就比如你提到计算和存储的比例问题,单节点其实也回避不了,还是要考虑,但是往往在单节点根本配不出想要的比例,或者即使配出了性价比也非常低。还有系统raid的问题,机柜电的问题等等

        • 真的是过来人,知道机柜的电的问题。目前uos基于intel的电源管理,可以控制整个机柜的电流,看到所有机器的电流,一旦超过,就可以想办法降低,例如降低cpu频率等。

          • 这样做不是说不行,而是性价比非常低,没法同时把计算和存储的能力压榨干净,往往要为了各种原因妥协一部分性能

          • 方案,总是在不断调整。起步阶段,肯定也是有很多无法考虑到的因素,你说的IDC的供电,就是其中一个因素。怎么把计算,存储,网络都压榨干净,这个真的需要多个方面去努力。这个也必须有一个真实的线上环境,你才能去改进。很多东西是理论无法推导出来的。

  2. 我支持Micheal的看法,实际上就是运营成本与技术模式的均衡的问题。而且如果真的要把计算与存贮融合,我也并不认为将ceph-osd与nova-compute跑到一台计算节点服务器上是一个好主意,而是应该采取从服务器硬件上分离的方法才能完全实现计算与存贮融合带来的各方面均衡的问题。USTACK的解决方案,如果骨干都已经使用到了40G,那么就算将计算与ceph系统分离而将ceph的读取骨干带宽提高到40G的话,性能也会达到一定的程度,再说回来,现在2U 100G上行带宽的交换机也有了,而且成本也会逐渐便宜下来。短期内用过于复杂的技术来构建云系统对系统稳定性的考验确实需要经过时间检验。而如果是自建自用自维护还好一些,但是如果提供给第三方这样的复杂技术方案,对第三方运营来说确实有压力。期望ustack的方案越走越好。

  3. 下次有活动,顺便通知我一下,我有空也去学习一下。

  4. 陈老师:
    我是以为刚接触OpenStack的新人。我近期碰到一个问题,就是在OpenStack环境中怎么实现当一个计算节点宕机时,此节点上的虚拟机能够自动迁移到另一个计算节点上。而且在迁移过程中不影响用户的使用?

    • 先要搞明白什么情况迁移,主动迁移和被动迁移。
      主动迁移,用户是感觉不到的。
      被动迁移,例如计算节点的cpu突然烧掉,整个机器关掉,根本来不及迁移,这个时候计算节点上的虚拟机肯定都关闭,这个时候,可以通过其他节点把虚拟机启动起来,用户是可以感觉到的。

  5. 计算和存储合并的方案,数据是3个备份吧,整个集群允许掉几台机器?怎么应对一个机柜掉电的故障。
    以我10几年IDC运维的经验看,机柜掉电是必然会遇到的,如果拖垮整个集群就灾难了

    • 他的方案里,是允许一个机柜掉电。也就说,3份数据是存放在分别3个机柜上。这样一个机柜掉电是不影响服务的。不过这里面其实也有一个问题,你空闲的资源要能满足才行。

      • 刚搭建的时候是能3份数据存放在分别3个机柜上,但以后加机柜怎么办?还怎么保证新增的数据也能和初始的一样分别在3个机柜
        我们讨论了1天,也没找到好办法,怎么实现机柜不断扩容的情况下、还能容忍一个机柜掉电

  6. 看了下ceph,是解决了机柜掉电的问题。但我们用的kvm+glusterfs。ceph啥时候能出正式版

  7. 再请教个问题,据您了解,业内采用计算和存储合并的方案、kvm+glusterfs,glusterfs是单独一个核,还是和宿主机共用一个核?

  8. 我在uos上简单测试了下vps的I/O读写速度,发现系统盘不是跑在分布式文件系统上的,是本地硬盘,数据盘才是在分布式。因为系统盘速度是数据盘的2倍多。3备份,物理机网卡千兆,分布式上的写速度只能到40MBps

    • 系统盘的IO和数据盘的IO是不一样。不过系统盘确实是放在Ceph上,不是使用本地盘。他们对盘是进行限速。包括现在的容量型硬盘也是一样。
      UOS是采用万兆网络。

  9. UnitedStack团队通过cgroup进行隔离,保证计算和存储互相不影响。
    请问:给ceph几个核?几G内存?

    • 内存不是很清楚,给了8个core,ceph。一个cpu拿出4个core给Ceph

      • 没看懂
        宿主机一共12个core,给ceph 8个?那上面还怎么部署虚拟机

        • 每个cpu是10个core,一共是20个core,分配8个给ceph,剩下12个core跑虚拟机。12个core超线程,是24个,如果是1:2,那么有48个cpu。

  10. 按超线程24核算,给了1/3给ceph,这个代价也太大了。成本好像还不如搞单独的商业存储集群,计算节点提高1/3虚拟机比例

    • 看看vmware大会推出的产品EVO:RAIL。就是同样的设计。计算,存储合并,下一步是把网络合并。这样比你单独搞个存储节点更加节省成本。

  11. 网络合并靠谱。

 Leave a Reply

(required)

(required)