如今,互联网企业依靠技术优势,深刻影响和改变着人们的生活和工作,其中,开源技术孕育了互联网企业发展。在云计算、大数据、AI、IoT的背后,是OpenStack、容器、Hadoop等开源技术的支撑,在开源技术支撑下,互联网企业如鱼得水。
相比互联网企业,传统行业/企业用户多采用IT服务外包的模式,主要依靠IT产品供应商、ISV、SI的技术能力,行业本身的技术实力和人才积累完全没有办法和互联网企业相比,在这样的情况下,传统行业企业应该如何对待开源技术呢?
对此,中国开源云联盟副秘书长、Ceph中国社区联合创始人耿航在2018中国数据与存储峰会的主题演讲中,给出了自己的见解。
耿航表示,适合自己的才是最好的选择。行业企业用户可以根据自己的需要,选择适合自己的云平台、存储和网络。开源产品的特点不同,适合的应用场景也不尽相同。以OpenStack为例,它的特点是全面,相比CloudStack、ZStack就比较轻量,容易管理和使用,因此,特点不同,用户的选择也不用。
对于行业企业用户来说,要能够适应云计算时代的特点和变化,用户团队需要做好以下几件事情:
在耿航看来,这是一个可行的调整和变化。
此外结合行业实践,针对Ceph部署中的网络问题、磁盘问题、时间问题、资源获取问题,以及应用场景的问题,耿航也进行了经验分享。
以下为演讲全文:
耿航:大家下午好,我是今天最后一个讲,很感谢大家坚持到最后。自我介绍一下我叫耿航,目前就职于中铁信,社会职务就是中国开源云联盟副秘书长,也是Ceph中国社区的联合创始人。今天主要讲一下开源云技术在传统企业里落地的建议以及思考。
首先分为这几个方面:首先介绍一下中国开源云联盟和Ceph基金会,后面会介绍到国内的一些开源生态的发展,还有包括对于开源云技术的一些思考,最后会说到传统的运维如何快速的学习,像Ceph或者是一些相关的云方面的技术。
中国开源云联盟,目前挂靠在工信部下面的中国电子技术标准化研究院,主要是做国内的云、标准、开源相关的产业,国内搞云的企业现在都在里面,包括说做一些开源的标准,或者是跟国际上的CNCF等国际上的基金会都是有交流的。
Ceph基金会,了解Ceph的话,Ceph在今年的上个月刚成立了Ceph基金会,Ceph基金会成立之后,对于Ceph来说是一个非常好的发展,因为之前像Ceph成立于2004,Ceph到现在发展十来年了,但是之前呢一直在2014年的时候被Red Hat收购了,收购之后Ceph的软件和社区都归Red Hat所有,大家知道Ceph很火,很多的生态厂商参与,这样对于Ceph未来的发展有瓶颈在里面,不利用它未来的建设。在Ceph创始人的大力推动下,Ceph社区在今年11月份的时候成立了Ceph基金会,Ceph基金会挂靠在Linx基金会下面,跟CNCF基金会是同等级的。参与基金会的赞助商会有一些权益,比如:参与它活动的决策,包括说它今后的一些技术的发展等等。
下面介绍一下中国区的一些用户,最上层是它的顶级的用户,中国移动,包括ZTE、XSKY。第二个是企业级会员,包括滴滴、EasyStack、中国平安、QCT。第三层是SRIE中铁信,是用户、研究机构被特邀进去的,也是参与到基金会里面的。
了解Ceph的话,或者了解OpenStack开源云技术的话,知道我们举办了Cephalocon APAC2018年的大会,关注我们的公众号(cephchina)可以获取视频以及一些信息。这个也是运作了好久才在国内落地的,目前在开源云技术方面,包括OpenStack开源云技术领域的,没有一个说首届国际峰会是放在中国的,所以说我们这个也算是在国内开源云技术方面起到了很大的促进作用,我们一直在跟国际的社区在交涉说,首届国际峰会的一定落在北京,中国的用户和开发者很多,最终功夫不负有心人落在了北京,然后来了很多的老外。下一届的Summit是在巴塞罗那,跟CNCF的KubeCon在一起合办。
说了一下背景和介绍,下面说一下国内的开源文化的发展趋势。
首先开源不等于免费的思维转变,像前几年的时候,一提到开源首先想到的就是免费,但事实开源不等于免费,就跟农夫山泉似的,我们不生产水,但是我们是大自然的搬运工,是一个道理。到现在大家渐渐的逐渐接受了开源服务的理念和思维,刚才前面Commvault的钱总也说到了用户思维的转变,大家现在开始逐渐的接受。
还有就是说开源不安全的思维转变,以前一提说开源这个东西安不安全或者怎么着,都会有这样的考虑,可以这样说这个世界上没有绝对的安全,只有相对的安全,那开源项目就是一个相对安全很好的例子,至少它是公开的代码谁都可以看、谁都可以改,所以它的安全性比闭源的要好一些。我这里列了一些国内的一些用户,包括一些运营商、互联网、金融行业、游戏行业。其实这些用户也都在使用Ceph或者OpenStack等开源云技术软件。
还有一个拥抱开源开放的思维。以前的话大家都是在国内搞开源,在国内小打小闹搞一个开源软件,然后在国内推广一下,都是在国内玩儿。现在可以看到,由国人开源的项目ApacheKylin、Habor、Tidb等等一些开源软件逐步的推向国际的开源基金会,比如Habor加入了CNCF基金会,ApacheKylin、SS也是加入了Apache基金会,都相应的加入到国际开源基金会里,开源文化从拥抱走向开放,从国内走向国际。
接下来说一下开源云技术在传统企业里面的落地思考和建议,以及一些观点这里也是参考了很多圈内好友和企业的一些观点,比如我的好友刘世民,某企业云研发总监曾亲身经历了企业上云转型经历,也是圈内技术网红。
OK,回到正题,前面大家都说到了企业上云,那么未来企业上云是常态,包括说未来提的很大的战略,云管边端&云数边端也好在未来一切都是基于云上来做。企业上云是云的常态我这儿说的是它的基础设施的,基础设施上云和业务的上云。基础设施上云很简单,硬件的服务器、存储上云。业务上云就是以前在本地的单机的业务应用迁到云上面。
我这儿说的是它在技术软件平台方面选型的问题,就是说适用于自己的才是最好的,有些是一些盲目的选型,现在云平台,现在最火的就是OpenStack,但是你不一定就选OpenStack,适用于自己的才是最好的。当然有很多人说OpenStack架构非常重,这个东西怎么说呢,开源的产品是大而全的东西,不能说有些功能它没有,它有,但是能不能用是一回事了,开源产品跟实际的落地还不一样,如果开源产品可以直接用,所有人不做产品了,直接做服务了。假设它有10个组件不一定10个组件都用,按照实际的应用场景来用,仅仅只是说私有云,用它核心的组件做私有云就行了。CloudStack跟Zstack的好处是简单易用,它的组件相对于OpenStack来说少很多的,这也跟OpenStack的生态有关,为什么说OpenStack重,什么都囊括,边缘计算什么的都囊括,也跟它的运营生态有关系,都囊括了,更多的厂商加入了才能把开源的项目盘活,有那么多东西不见得你实际应用的时候都用上。
包括存储的选型,最火的是Ceph,当然还有SheepDog、GlusterFS等,很多时候你选型存储不一定非得用Ceph,当然用Ceph也有很多的好处,Ceph的生态有很多,从底层的硬件Intel、ARM,包括到上层的操作系统Red Hat、SUSE,再到上层的云平台OpenStack、CloudStack、Zstack都是支持Ceph的,包括说最上层的应用OwnCloud等。所以可以看到它从最底层到上层的应用都在支持Ceph,Ceph算是非常完善的开源生态、社区生态。其实在选择开源软件的时候,其实无非是这几点,首先选择开源生态,选择开源生态无非就是省去人力、时间等等一些成本。
还有就是说网络选型,有SDN、VXLAN、VLAN,其实我觉得私有云没有必要用VXLAN,用了反而增加了运维的一些成本。本身VLAN就满足了私有云的场景了,用上VXLAN就加大了难度,无非是给自己挖坑自己跳进去了,出了问题排错也不好排。
像我之前在做公有云网络调研开源软件的时候也是一样,我们选型有一家公司,它的软件非常不错,它可以完美的跟OpenStack相结合,替代了OpenStack里面OVS,包括说它的高级功能,像什么VPNAAS、FWAAS等等功能,这个东西非常不错,但是它没有良好的开源生态,万一这家公司死了,这个项目也就随之而死了。无论国内在选型开源也好,国外也好,开源生态还是要非常考虑,包括为什么说SheepDog、GlusterFS很少用,因为没有很好的生态。
上云只是起点而不是终点,因为它涉及到技术因素、团队因素、多个团队相互配合,传统企业里很多的团队,服务器运维、数据库运维等等多团队的相互配合。包括说一些迁移,刚才也说到了数据的迁移,包括说虚拟机的迁移、V2V等等都是有很多的因素在里面。
可以看到我PPT上写了很多技术名词,其实在上云前期的话,其实也可以看做一个过度期,为什么这么说呢,前期肯定是开源与商业相并存的状态,就像刚才EasyStack说到的,他们的存储都是在商业存储和分布式存储并存,逐渐的从商业的产品脱离到开源技术的产品。为什么说只是起点不是终点呢?因为你要做的东西很多,这点刚才EasyStack也说到了,他们将很多开源技术的搬到了传统企业上,但是也一样,你比如像DevOps 、CI/CD等技术概念炒的很火,但是传统企业里很难落地,DevOps、CI/CD非常不错,理念也不错,但是与实际相差有点大,这个东西完全是革新是改革,颠覆了以前开发的习惯,甚至说你以前思维的习惯,原来可能在本地操作,现在不一样了,要集中进行。所以说它完全是一种颠覆,在传统企业里面是非常不好推动的,要推动无非几个因素,首先这个东西肯定是自上而下的,包括说企业上云也是自上而下的,如果是下边进行推动实际上非常困难,当然了也不算百分百成功,自上而下有时候还有半途而废的。
像前面刚才说到的一些转型,包括一些大的战略(云数边端)。其实现在在铁路上,也是一样的,以云为基础,利用大数据、边缘计算IOT等技术来进行更好的完善铁路的一些系统,包括说铁路现在在建设二级的管理模式,其实以前的话都是铁总、铁路局、铁路段,现在其实也是逐渐的从三级变成二级,逐渐的把一些东西给管控起来,数据、资源给管控起来,其实也用到了刚才说的一些技术,包括无人机的巡航、大数据的分析等等一些,更好的为铁路系统保驾护航。
数字化转型的道路上有很多的企业,不光是铁路,包括制造业,在国家的大方针下、政策下知道方向在哪儿,但是不知道怎么做,据我了解石家庄就有一个军需物资的国企,他们也是在寻求数字化转型,寻求数字化转型的时候他们不大懂,但他们想做却不知道怎么做,这个时候就缺乏一些指导,包括说一些咨询方面的建议和落地。
刚才也说到了,无非是主要几点:首先肯定是需要一个合适的云服务提供商,为什么这么说呢,因为服务提供商要非常非常的懂业务,只有了解你的业务、了解你的实际情况才好制定相应的上云的方案。第二,上云需要多个相关技术团队配合,不是说单纯一个运维团队就能搞定了,肯定也是说需要多个运维团队进行相互合作参与的。第三,同时要评估上云的方案和迁移工具的研发。第四,需要稳妥有序的推进,一步一步来推进,不能一蹴而就。第五,需要充分考量安全的问题,很多考虑上云之后的安全问题。刚才也说到了,基础设施的上云、服务器存储包括安全的设备也是上云,现在有很多的等等一些上云的安全。第六,还要考虑说技术、成本、团队培养、商务问题等等。第七,团队培养主要说一下团队的一些培养,在上传统企业上云的初期肯定是说,先找一家云服务提供商快速的帮我把业务建起来,建立起来的同时也要建立自己的相关的云的团队,在这个其中相互磨合、相互学习,同时练兵把自己的人培养起来。培养起来到了中期的阶段,中期的阶段肯定是说自己的人接手一部分运维的事情,继续练兵。后期团队磨合差不多了,能够具备一些相关的云方面的开发和工作了,也就是自己能做的就自己做了,不能做的时候再采用外面的服务商。
最后呢说下传统企业运维转型Ceph时候遇到的一些问题,初学者玩Ceph会遇到网络问题,因为Ceph源在国外,看官方文档也是用国外的源,国外的源就容易time out,怎么办呢,配上国内源,国内很多的阿里、网易、中科大等等国内有很多的源。还有一个问题就是磁盘的问题,磁盘这个问题怎么说呢,其实我觉得是最不应该出现的吧,因为你要玩一个存储什么的,你肯定盘要是干净的,包括说后面这个磁盘的问题,就是说新版的时候,因为以前是可以基于目录来做它的OSD,但是新版L版之后不允许这样做了,因为这个错误就是说不允许这样做产生的,可能以前玩的,之后很长时间没玩,玩新版的了,出现这个问题。这个问题怎么解决呢?可以采用DD的方式,然后LOOP的方式挂到本地,但是不建议这样做,这样做可以解决问题,但是不建议这样做,因为这样做的目的是为了测试,测试选择虚拟机、物理机,假设选择虚拟机你是不缺盘的,不缺盘的情况下这个问题不会出现,所以说有些问题其实都是说它在自学过程中自己造成的,然后不小心掉进去了。
还有就是说,还有一个问题为什么会出现呢,因为官方推荐三节点,但他非要单节点部署,那也会出现这样那样奇葩的问题,所以说你一定要按照官方的来,不要说按照自己的理解。
还有时间的问题,下面这个图看到它进程还在的,但是状态是down的,排查半天是时间的问题,时间节点不一致导致状态是不一致的。还有一个情况就是网卡的情况,之前就遇到了,OSD状态一会儿down一会儿up,网卡有问题的情况下也会出现这种情况。其实时间问题还有,比如Ceph有个组件叫,Monitor,Monitor对于时间要求非常强,一旦超过多少秒这个状态就不健康了。
前面说了那么多,我把一些问题的总结也看到,这是第一个问题,就是说它的国内镜像源,还有就是国内的文档包括社区的群可以架一下,到里面可以相关的咨询它的问题,像OpenStack、K8S都是在拥抱Ceph。这一点怎么说呢,很多人说Ceph这个支撑不好,其实也不能说Ceph对于K8S支撑不好,K8S对于所有块都支持的不好,对于所有块都不支持,只对分布式文件存储支持,现在国内玩儿K8S的有一部分是用的Ceph的RBD,Ceph的块,还有用的CephFS,这块还是不太建议用,因为还是有很多坑,数据量大的时候就有很多的坑,刚才选型忘说了。还有一些选型就是说,你是盲目选型,没有充分的考虑业务实际情况的时候,盲目的选型了存储软件,举个例子CephFS,国内很多的客户可以用对象存储解决问题,但是它选型用了FS,一定业务量之后遇到了问题,那它的被迫转型到对象上,数据迁到对象上。还有就是之前也是一家公司选型错了,用了FS,最后操作不当数据丢了,这些情况其实都是之前选型造成的一些问题。
接下来就是部署完了怎么用呢,最典型的场景就是说块状的应用,刚才对接的像Z Stack,它跟Cloud Stack很像,玩过Cloud Stack的就觉得ZStack很好玩。还有OpenStack,所有主流的版本Ceph它都兼容,为什么每次Ceph基金会发布调查报告的时候,Ceph永远排在第一位,这是非常重要的一点,它的兼容性非常好,对于OpenStack社区的兼容性非常好,为什么比商业存储还靠前呢,因为商业存储厂商它针对某些版本做driver版本的开发,有的用户升级之后就会产生不兼容等等。这也是Ceph可以在OpenStack上排在第一的原因。
还有是基于OpenStack来做的公有云,甚至说私有云上面都有容量和性能盘的迷惑,上面创建盘的时候,会让你选择容量盘还是性能盘,这个怎么实现的呢,基于Ceph非常简单,因为Ceph有一个算法叫做Crush算法,它有一个CrushMap可以编辑,把我实际物理机上的磁盘逻辑组成一个host,或者多个host,组成故障域,假设把所有SSD都归成host,把几个host跟SSD、SATA、Pool相关联,Pool跟OpenStack的Cinder关联,Cinder可以支持多个Type,支持多个后端,对应多个盘的类型,这也是一样的,通过Ceph实现就是用CrushMap编辑实现的。Ceph故障域的概念,可以划分你的数据是以盘还是以机器、机架分布,可以通过这个进行调你想怎么分,同时故障域的概念,你在故障域里面down了一台机器,别的是不受影响的。
我这里有个Ceph的原生页面,Ceph在L版之后才出来的,L版本算是Ceph的一个里程碑版本,L版之前没有良好的页面,L版之后有非常完善的产品页面,L版之后越来越产品化了,可以看到它非常完善,这个是主页面,这是它的存储的一些容量,包括说它的一些存储Pools,包括它的一些日志都是非常偏产品化,现在所有的开源分布式存储,它是没有这样比较完善的页面的,包括可以看到它的集群的一些节点,包括资源池,包括创建它的块,包括删除块,包括给块进行一些快照、删除快照、快照锁都可以实现,包括它的对象,Ceph是统一的分布式存储嘛,既提供块又提供文件又提供对象,它对象呢就是创建Bucket操作等,创建用户删除用户,包括AK/SK都可以在页面上看到,以及命令行的操作解放出来放在页面上操作,逐渐的走向产品化走向简单。我这儿就不具体的播放了,主要的功能就是刚才说的那些功能。
然后非结构化数据无处不在,其实现在都知道,移动端的一些直播之类的非常火,直播完之后它有回放功能,回放功能就是非结构化的数据,它存哪儿了,存在对象存储上。国内的虎牙直播就是把视频存在Ceph对象上,包括说Vphotos,其实就是云拍照,现场拍了,经常参会的都知道,现场拍照片主办方说你在哪儿就可以看到今天的照片,拍完照之后右下角会有这样的一个logo,其实都是照片嘛,也是非结构化的数据,无处不在。
另外就是对象存储的应用,Ceph对象存储。Ceph对象存储其实目前应用最广的就是说,你像在玩儿游戏,做备份文档,包括前段时间在网易云,网易几乎所有的产品像考拉什么的一些产品,都是用在对象存储上。还有像携程也在用对象存储,包括今日头条,它的一些视频都是存在对象上,包括中国电信,是把用Ceph对接的CDN,对象对接的场景就是流媒体、转码存、网盘,包括一些网盘,最简单的就是我刚才说的Own cloud原生就是支持的。
说完之后呢,可能会有说既然是存储肯定是要考虑它的灾备情况了,这点呢刚才也提到了Ceph可以基于机柜做一些故障域,这个down机之后别的地方业务无感知的,对于业务没有影响的。另外就是块的一些灾备,可以做跨集群的复制。还有就是基于对象多站点的灾备,可以多个站点的灾备,可能会有人说,你只说到了块跟对象,没有说文件。刚才也说到了,文件其实虽然说官方说可以用于生产,之前在L版之前都不建议生产,官方都说不建议生产,但是L版之后不建议生产这句话没有了,但是依旧不建议上生态,因为数据量大的时候产生的IO会比较多,包括你迁移的时候,其实它有很多的问题,没有说满足FS的一些特性,所以其实还不建议用,我就不推荐FS怎么用了。
其实有很多的场景,像对象,其实可以完全替代文件的嘛,包括说像Ceph官方社区在对象存储上转换一下,转换成NFS的接口你就可以用,对于业务应用来说它是个文件,存储到后面是个对象,也可以这么玩。包括社区最新的一些,刚才提到混合云的,也可以在你本地部署对象存储之后,可以把你本地的数据通过最新的Cloud Sync 传到公有云对象存储上,当然也可以把他们的数据对象拉过来,也是数据管理和备份,可以备份到上面的数据。
说完了安装、使用、灾备,现在就是运维,运维我这里推荐了一种,就是命令行的运维,包括有人说封装了API,包括一些命令的工具,可以进行二次开发。监控方面很多用完之后不知道这个东西怎么监控,我说了刚才说的原生的Dashboard,有一些微观的监控,可以看到OSG读写的状态。还有Zabbix,有一个Ceph插件。另外一个就是Prometheus来玩儿,现在大部分都是用这个,也是用来监控Ceph。管理类的推荐两个,这两个也可以部署,这两个玩儿Ceph的话算是比较良心的开源产品,前面这个PetaSAN在原生的Ceph上侧重于块,在原生的Ceph之上又做了一些工作,在块方面做了一些工作,包括可以管理,可以带一些弱化的监控,包括一些部署都可以玩儿。后面这个Proxmox类似于ESXI虚拟化,也可以管理添加删除,这两个产品都是开源的,看了它界面的话,比原生的好一些,这两个产品算是业界良心的开源产品,跟社区版的话也还是跟的比较紧的。
后面推荐一本书,小白的话可以关注我们这本书《Ceph分布式存储实践》,我也是这本书的主编和作者之一,这本书就是帮助Ceph小白和行外人快速了解Ceph是什么东西,Ceph可以用来干吗,甚至说Ceph的应用场景、基本运维等都是有的。
还有就是一些学习途径,刚才说到一些人才培养的学习途径,除了跟随乙方的云提供商团队进行磨合,同时也可以通过外围的网站、网校进行学校,通过网校学习+乙方云提供商相互磨合,可以快速有效的帮助自己的团队有效的建设。