我关注的几个方向就是云计算、大数据、运维自动化还有容器这块的东西。容器现在太火了,如果不去抓它的话可能就是落后了。今天主要议程是这些,第一个介绍一下巨人星云,第二是我们为什么做星云这个东西?第三就是我们星云大概经历了哪些历程?后面两个部分就是讲真正的技术,用的哪些技术?最后我们踩过哪些坑,希望对大家有帮助。
张恒峰:大家下午好,首先感谢中国IDC圈给大家交流的机会。我今天主要讲的就是我们巨人星云遇到的一些问题,前半部分是广告,后面是实战更多一些。希望给大家带来一些帮助。听这个东西可以给了解OpenStack的人帮助更大一些,没有用过的话也有帮助,你们只需要知道我们在用了,也没有太大问题,基本可以满足大多数的需求。
首先自我介绍一下,我是张恒峰,我是在巨人网络现在是巨人星云这块的技术负责人,所以说今天讲的大部分是技术偏多。我关注的几个方向就是云计算、大数据、运维自动化还有容器这块的东西。容器现在太火了,如果不去抓它的话可能就是落后了。今天主要议程是这些,第一个介绍一下巨人星云,第二是我们为什么做星云这个东西?第三就是我们星云大概经历了哪些历程?后面两个部分就是讲真正的技术,用的哪些技术?最后我们踩过哪些坑,希望对大家有帮助。
巨人星云其实是属于上海巨人网络科技有限公司的,是我们在整合我们的一些资源的基础上,做的这么一个基于OpenStack的IaaS平台,目前主要是IaaS,后面可能会做PaaS和SaaS这些东西。我们星云上面跑很多业务,包括手游、页游、端游还有开发测试这些东西都在我们的IaaS平台上在跑。为什么要做?做过游戏的人可能知道这几年来,端游呈现一个下滑趋势。手游和页游,尤其是手游是做游戏的未来。手游和页游这方面有一个比较明显的特点,就是人来的快,去的快,了解云计算的应该知道它的优势就是快速扩展,弹性伸缩这些都是比较有优势的。然后是行业发展,现在整个大行业基本上在用云,尤其是用公有云。公有云像阿里、亚马逊这些盈利已经很多了,基本大的趋势都是往云上迁,所以我们也要抓住这个趋势做一下我们自己的云平台。第三是运维,我们做运维的话,大多数公司其实就是一个消耗的部门,消耗部门比较尴尬的位置就是你满足不了业务需求,可能人家就找你的麻烦,这些人如果在这儿创造不了什么价值?你有可能被赶走,尤其现在公有云这么流行,你不做这个事情,很多人可能存在的价值不太大,容易被淘汰。所以说在这么三个背景下,我们做了星云这么一个东西。
我们发展历程,最开始我们巨人是用虚拟化,最早的时候其实是用ZEN,就是11年那个时候开始有些人在研究这个东西。我们用ZEN的过程中遇到各种各样的问题,后来转到KVM上面,转上来之后问题少了很多,时间推移到13年的样子,我们巨人星云团队正式成立。其实当时可选的云平台方案其实很多,比如OpenStack、CloudStack等等,当然我做一些调研,从社区的活跃程度、代码贡献量还有回答问题,国内做这个人的数量来说,OpenStack的管理平台可能是,当时来说一个更好的选择。所以我们选择它,没有再做别的。研究它到现在,我们已经承载了很多业务,比如之前说的手游、端游、页游基本上也有大部分的业务在这个上面跑。期间遇到很多问题,反正基本上可以满足百分之八九十的需求是没有什么问题的。不光现在,我们其实也有一些资源其实可能是公司内部用不完,我们也对外提供了部分的公有云的服务,还有一个就是我们既然踩了那么多坑,做了这么多事情,我们也想把它做成一个产品。做成一个产品可以给公司带来那么一点点的收益,也就体现出我们做运维的这么一个价值。我们未来可能会做基于稳定的IaaS之上,会做一些PaaS或者SaaS的应用,这都是后话了。
技术,我们用的所有的技术栈都在这里。计算方面用KVM、Nova,CPU内存这块,我们不差分也不存在隔离问题,最主要的问题是CPU,因为CPU你共用了超分了,可能涉及到怎么把它隔离开,怎么给用户提高更好的体验这个问题,这个也是按照业内大部分人的做法,还有就是根据不同的租户,不同的用户给他把虚拟机的计算资源尽量分散在不同的物理机上,这样的话也会在我们IaaS层,保证它的业务的稳定性上面,做了一点事情。技术网络,网络这块我们没有用L3、DVL,L3的HA,因为这些东西在我看来社区版本真的是,其实是不能用的,所以我们用的是最简单的,用ML2,用VLAN隔离,用虚拟的网桥,因为这种是最稳定最高效的,在我看来。像OVS,因为我们做的时候OVS的版本不是很稳定,我们没有选用它,后续我们可能会研究一下OVS这个东西,先用到测试里看一看。
网络方面,你的网络不会大问题,唯一问题就是安全问题。我们最开始做云平台的时候,经常遇到来自各个方面的攻击还有被黑之后攻击别人这种事情,我们后面加了一些安全,现在这种事情少了很多。存储,基本用Cinder、Ceph来做,大部分人,如果用OpenStack都会接触Ceph这个东西,Ceph这个东西好用,当然也有很多问题。只要你要求不是说非常的高,然后他的可用性还是非常好的,不管是架构上,它的社区,你去问问题,很快有人回应你。后面我会说一下Ceph我们遇到的问题。监控这个方面包括两个部分,一个是虚拟机的监控,一个是物理机的监控。虚拟机我们基本用Ceilometer,这个东西可用,问题也有,我们也做了一些自己的工作,基本上可以满足我们的需求。物理机我们是用Open Falcon这个东西,它管理起来的话更方便,大家想用可以去尝试一下。运维第一是部署,还有平时维护、升级这些,我们大部分用Ansible做,还写了一些脚本来结合,我们还自己做了一个类似管理的页面,通过这个页面可以完全百分之八九十的运维管理。开发基本就是用Python,管理页面我们是用JAVA写的,还有Sife就是用C++,我们现在对Sife这方面仅限于用,主要遇到一些比较奇特问题我们可能看一下它的代码,所以也会用C++。
如果想做一个公有云这些东西还不够,还需要计费,计费我们自己做,这个就不拿出来讲了。我们踩过的一些坑,这些就是真正的遇到的问题。第一就是Keystone的认证非常慢,这个计算节点可能上百台的时候,如果是用原生的WSGI跑的话可能会有这个问题,我们看了一下单个进程跑满了非常慢,解决方案就是按照社区提的,现在有几百个计算节点,不会有慢的问题。然后就是Cinder,因为提供一个卷,你用Cinder Iist去看非常慢,我们查了一下代码,Cinder list也有不需要的东西,就是无用的信息加到这个里面过多调用,后来我们把没用的调用全部去掉,基本上提升的非常多,现在慢的问题基本上没有了。第三个就是网络,Neutron dhcp agent宕机导致虚拟机IP丢失,我们直接把它的时间调长一百年,一个机器用一百年的话基本上不大可能。然后是nova带config driver时,live migration会失败,这个也不是所有的都会失败,如果版本是FAT那种格式它不会报失败,只有是ISO的格式才会失败。这个我们的解决办法就是把代码修改了一下,基本上就解决了。
nova 从镜像启动新建一个卷时,启动失败。Cinder可用是同一个域的情况,我也是改了一下代码,还有Ceph几个问题,Ceph -S慢,我们查了半天,它的负载太高,基本都是在请求域的东西,根本原因是其中某一个OSD节点的时间同步没有做好,因为Ceph里面如果时间太快,它就会认为你给它的已经过期,它不停的去要,然后结果他们之间不停发消息,导致负载非常高。解决这个问题的话你只需要把时间同步做好就可以了。扩充,分布式系统、存储系统基本都会这么一个问题,扩容的时候对于上层影响比较大,这个解决起来,思路上让它优先响应客户端的请求,然后加一个盘的时候,把它的Vite值慢慢加,可能时间比较久,这个也没有办法就是这样做。还有CephOSD会宕机,这是开始的时候打开文件数还有内核里面总的文件数不够引起的还有就是线程这几个,反正你把它调到最大值之后基本不会有问题。然后就是ceph mon oom的问题,我们64G内存运行了两年多,也出现一两次oom的问题,我们后续会把硬件服务器升级一下基本就可以解决。我就讲这些,希望对大家有一点帮助。结论其实就是OpenStack和Ceph这个东西,直接拿到企业去用,不会有太大的问题。但是你需要有一两个开发,或者两三个好的运维,基本上你就可以搞定了。也不像有些人说的坑那么多,其实也没有说太多的坑,基本有四五个人,也可以用起来,可以满足大部分的业务需求,谢谢大家。
浏览4733次
浏览2320次
浏览5242次
浏览1258次
浏览4913次
浏览4116次
2025-01-08 昆明
2025-06-20 深圳
2025-04-19 南京
2025-08-15 上海
打开微信扫一扫,分享到朋友圈