世界最大OpenStack私有云是如何运营的 00 OpenStack中国社区
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了世界最大OpenStack私有云是如何运营的 00 OpenStack中国社区相关的知识,希望对你有一定的参考价值。
参考技术A 一、构建篇在构建方面,PayPal的工程师最关心扩展性和可用性,具体涉及以下几个方面:
1,首先是可用性,基于Nova的Cell来实现IT服务的可用性。
2,其次是弃用那些过时的工具,以负载均衡为例,eBay和PayPal花了几年时间试图自己开发工具以实现LBaaS,最终还是决定改用社区的功能组件,因为社区的组件更开放,合作伙伴更容易在上面开发插件。
3,在线升级和测试 这一功能对于的健壮性和扩展性尤为重要,能够在线升级,才能跟上社区发展的脚步。
4,实时容量扩展 PayPal的目标是新机架到货之后,只需要1-2天就可以完成部署并上线应用。
二、迁移篇
相对于构建一个新的系统,将应用和数据迁移到新的架构则更具挑战,我们来看看这次迁移任务的细节和面对的挑战:
1,有限的工作人员;
2,超过8000台机器;
3,2PB的公共数据,以及大量存储于虚拟机内的本地数据;
4,上述应用和数据位于3个不同的地点;
5,通过迁移将可用性技术从Nova Availability Zone变更为Nova Cell Service以实现更好的可用性和扩展性;
6,变更防火墙配置,制定访问规则;
7,检验并解决新硬件的兼容性问题,确保新系统的稳定性。
下面是PayPal通过这一次迁移总结出的经验:
1,基础架构的可见性对保持配置一致性非常重要 如果你没有一个关于基础架构的完整视图,那将是致命的。比如你在部署应用的过程中如果有虚拟机宕机了,等它重新恢复工作时,上面的应用和配置将是不正确的。
2,不要指望所有的应用和开发工作都能迁移到新的环境 必然会有无法迁移的部分,在云计算时代,少几个虚拟机应该不是什么大问题。
3,不要一开始就使用自动化配置工具 PayPal先用手工的方式完成5%-10%的配置工作,在确定一定正常之后才引入自动化的方法完成后绪的工作。
4,迁移API服务的时候要万分小心 很多自动化操作基于这些API完成,因此你不能随便停止这些API服务,选择关键操作的执行间隙来迁移服务,并且不要指望在一个时间窗口内迁移所有API服务。
5,要清楚你迁移的是什么 不要为了节省时间而停止你的生产API或实例的虚IP,那样会增加风险。
6,切记,如果遇到问题,你不一定可以回滚配置。
补充说明一下这个Cell,它是用来替代原来的Zone以更好地解决OpenStack的扩展性问题,这部分内容OS借鉴了AWS的做法。一个OS云首先分为多个Region,不同的Region通常需要不同的地域,多个Region之间只有KeyStone和Horizon服务是共享的,因此Region可以用来实现隔离和优化访问。Region的下一级就是Cell,每个Cell都有一套独立的数据库和消息队列服务,另外Cell是树形结构,只有树根Cell有Nova-API服务,因此也被称为API-Cell。其它的子Cell都共享这个Nova-API服务,而Nova的其它服务则分布于每一个Cell,子Cell也称计算Cell。
PayPal提到Cell这个组件目前功能还不完整,在数据同步方面还有一些不足,但是因为扩展性和可用性需要,PayPal必须用Cell来代替原有的Zone。
三、工具篇
PayPal使用了一些开源工具:
1,Graphite用于绘图
2,Puppet和Salt用于配置管理
3,Zabbix用于监视
4,Cobbler用于裸机部署
另外PayPal自己开发了一个名为Flyway的迁移工具,用于从eBay云向PayPal云迁移几千台虚拟机和相关资源。它负责完成下述资源的迁移工作:
1,Nova虚拟机
2,用户、租户、角色、密钥对和限额
3,镜像和快照
4,Cinder卷和数据
5,Trove数据库实例
6,LBaaS VIP实例和证书
PayPal计划将这一工具开源到GitHub。此外,PayPal还开发了其它一些迁移辅助工具:
1,Stackwatch/Stackmetrics用于健康检查和度量
2,Reparo用于服务器修复和置备,也负责硬件监测和补丁管理
3,Cloudinfo用于云的可见性,将各种视图和相关数据汇总到一起,也提供Metric视图。
4,CloudMinion用于资源回收 通过扫描网络流量发现闲置虚拟机,管理过期时间,发送告警,自动回收资源并提供报告。
5,CMS 用做中央配置数据库,集中存储和管理物理和虚拟组件,基础架构和应用等所有资源的信息,并可以呈现这些资源之间的关系。
四、未来篇
1,采用Masterless Puppet构建更具扩展性和可用性的配置管理方案,消除单一故障点。
2,Infra AZ项目:通过OpenStack来部署OpenStack,开发更好的控制平面,提高容量扩展速度,实现一键扩容。
3,从H版直接升级到Kilo版,数据平面不能停,控制只有几个小时的窗口,部分网络需要从Nova-Network升级到Neutron。
五、西蒙乱谈
1,采用开源技术要跟对主流,社区是靠一个庞大的群体来支持的,你对社区产品的增强只能是锦上添花,如果那块绣布烂掉了,你的手艺再好也是白搭。
2,OpenStack成长很快,正在不断完善,可堪大用,但因为它的定位只是一个框架,需要与大量的相关组件进行集成才能落地,因此采用社区版本自主开发云并不容易,你需要组建一个与社区联系紧密的专家团队。
3,OS在监控和运维管理方面相对薄弱,还有很多不足,PayPal在这方面花的功夫最多,如果不能很好地解决这一问题,就不要大规模采用OS,否则你会把自己拖死。
4,网络也是OpenStack短板之一,PayPal采用Neutron加上NSX来满足业务对网络服务的需求。
智囊团王荣繁分享:OpenStack 的调优运营经验
智囊团分享人:王荣繁 宝德科技集团云事业群云技术中心主管,宝德云技术总监。2012年开始接触OpenStack、OpenShift等开源云计算平台,带领团队进行宝德公有云的软硬件架构设计、研发、运维,并负责宝德私有云解决方案的总体设计。
最近Docker在市场活动上的声音比较大,颇有孕育一场IT新变革的势头,不禁让人想起2012年的OpenStack。
OpenStack是目前最活跃的开源社区,也是拥有最多IT巨头支持的开源云计算平台,“智囊团”1群也刚刚闲谈过OpenStack,借着顺风车,今天继续向大家分享一些宝德云在OpenStack上的调优、运营经验,部分内容在OpenStack五周年庆深圳站的Topic上已有分享过。
首先,简单介绍一下宝德在云计算上的发展历程。
宝德1997年成立,2002年在香港上市,是拥有18年历史的国产服务器厂商。
2012年开始研究云计算平台,2013年基于OpenStack Essex提供宝德云1.0,初期主要在集团内部企业进行推广使用及邀请测试。
2014年,在软件定义网络SDN、软件定义存储SDS等方向上大力投入,并基于OpenStack Icehouse发布宝德云2.0。
2015年,基于计算、存储超融合架构及超融合一体机生态圈,整合OpenStack云管理平台与传统硬件解决方案。
今天的分享内容大致分为三个部分:
OpenStack的经典部署及高可用方案
OpenStack云平台各组件工作流程及秒级响应调优措施
提高用户体验的功能细节及运营功能
OpenStack的经典部署及高可用方案
目前,OpenStack在国际、国内均已有非常多的成功落地案例,各类云计算会议上也经常看到圈内朋友展示的Usecase。
OpenStack云管理平台主要由控制节点、计算节点、网络节点组成,核心组件包括:Keystone、Glance、Nova、Cinder、Neutron、Horizon,以及Ceilometer、Trove、Heat等等,存储后端根据用户选型,会有集中式存储或分布式存储。
OpenStack由众多组件组成,各组件的高可用部署方案也会有所差异,下面几张高可用架构部署图来自于社区的Ops Docs。
控制节点上主要运行Keystone、Glance、Cinder、Nova、Neutron、Horizon、数据库以及HA组件,大部分服务可以实现Active-Active方式的HA,多个Glance-API可以使用共享存储,统一保存虚拟机镜像文件。Cinder-Volume可以采用Multiple Storage Backend,在一个服务上同时管理多个存储后端。
计算节点上主要运行Nova、Neutron组件,结合KVM、Xen、VMWare、Hyper-V等不同虚拟化软件,提供计算虚拟化服务,每台计算节点分别承载用户的云主机实例。借助集中式存储或分布式存储,通过热迁移、移植云主机等方式,保障云主机的服务可用性和数据持久性。
网络节点上主要运行Neutron组件,包括DHCP、L3、Metadata、OpenvSwith/LinuxBridge等Agent服务。图中是采用Pacemaker在两台网络节点间实现主备式的HA,切换过程中虚拟机南北向流量会出现短暂的中断。除了主备式外,目前还有DVR、Dragonflow、硬件SDN等分布式路由的方案,减少网络故障造成的影响范围。
这是云平台中三个网络平台:管理网络、VM数据网络、外部网络,以及各类型节点的网络端口配置。在实际生产环境中,往往会将存储节点单独放置于万兆存储网络,以提高虚拟机存储的IO性能。
OpenStack云平台各组件工作流程及秒级响应调优措施
云计算平台的核心任务是保障用户业务的安全、稳定运行,因此系统高可用方案是重中之重。除此之外,从用户体验角度来看,提供一个快速响应、即时申请资源的管理平台,也必不可少。
在OpenStack云平台架构中,云资源的创建、删除、调整、查询等流程错综复杂。
主要会有以下几个关键点影响了工作流程:
Horizon Polling
Image Prepare
Keystone Token
OpenStack APIs
Messaging Queue
Database Performance
Network Spwaning
VM Boot Grub and CloudInit
VM Resize/Migrate
Horizon:大部分OpenStack厂商都会重新定制一套Portal界面,采用WebSocket推送的方式替换社区版本中的轮询方式。比如,宝德云基于Redis、WebSocket、Gevent等,在uWSGI中开启两个实例:一个处理用户的正常HTTP请求,一个处理WebSockt请求。
Image Prepare:
(1)当默认使用本地存储创建新虚拟机时,需要从控制节点Glance下载基础镜像文件到计算节点(如本地已有镜像文件缓存,则可跳过);
(2)虚拟机进行系统盘快照时,需要合并基础镜像和磁盘文件,并上传至Glance。
根据基础镜像文件、用户实际使用磁盘空间的大小,使用本地存储在这个过程中可能会花费大量的时间。
因此,在这上面出现了大量的替代方案:
(1)使用Qcow2格式镜像
(2)SharedStorage:在计算节点上使用共享存储,如NFS\CephFS\GlusterFS
(3)Boot From Volume:从统一存储启动云主机系统
(4)Ceph:由Ceph统一提供Glance、Cinder、Nova存储服务,虚拟机镜像、系统盘、数据盘分别置于Ceph的不同Pool,避免反复的下载、上传、克隆。
Keystone Token:使用mysql存储大量token会增加身份验证的时长,采用Memcached共享控制节点间的Token即可。相比PKI格式,采用UUID格式的Token可以减少身份验证时传输的数据包大小。
OpenStack APIs:各组件间的调用基本使用API方式,每个组件的API响应速度都会影响操作流程。大部分组件的API都可以采用MultiHost\MultiWorkers的部署方式,通过增加节点数、增加工作线程数的方式,可大幅提高并发请求数。
Messaging Queue:大部分组件内部不同进程间是采用消息队列的方式进行通讯,部分组件间的交互也有采用消息队列,如发送Notification信息至Ceilometer。社区中默认的消息队列选项有Qpid、RabbitMQ,在小规模环境下,这两个均可正常服务。然而,随着规模的增大,服务器/客户端模式的消息队列必然出现瓶颈。宝德云采用P2P模式的ZeroMQ、RabbitMQ相互结合的方式,满足在大规模部署场景下的消息发送、响应需求。在云平台不同服务上采用MatchMakerRedis、MatchMakerRing等消息目标映射方式。
Database Performance:在所有数据库信息系统里,数据库性能的优化是一项极其关键的任务。宝德云在OpenStack数据库选择上采用了MySQL集群发行版Percona及非关系型数据库MongoDB。
数据库调优项包括:
innodb_buffer_pool_size、innodb_log_file_size、max_connections、innodb_file_per_table、innodb_flush_log_at_trx_commit、 innodb_flush_method、innodb_log_buffer_size、query_cache_size、log_bin、skip_name_resolve等等。
在文件系统、内存、CPU上也有常见的调优项:
ext4 (or xfs), mount with noatime、Scheduler – use deadline or noop;Swappiness and NUMA;no powersave mode、no ondemand等等。
Network Spwaning:除了VLan/GRE/VxLAN、OVS/LinuxBridge等不同选型外,在Neutron网络服务配置上也有几个可优化项,如采用Namespace、从DHCP获取Metadata、增加DHCP leaseTime、设置dnsmasq_no_ping、调整Kernel ARP Table等等。
8、VM Boot Grub and CloudInit:不同操作系统版本的虚拟机镜像制作时,会有一些提高启动速度的配置。
9、VM Resize/Migrate:有很多方法可以提高云主机更改配置、迁移云主机的速度。比如:allow_resize_to_same_host=None、resize_to_same_host=require
提高用户体验的功能细节及运营功能
在这里不是做产品功能宣传,只是简单分享一下宝德云做过的一些提高用户体验的功能细节及运营功能,公有云的同行们可以相互交流一下经验,共同促进公有云的良性发展。
云平台修改VM密码密钥:通过简单的shell或bat脚本,从Nova获取元数据,当用户密码遗失时特别有用;
修改Hostname:社区中重命名默认只修改Display Name,不修改Hostname;
多虚拟网卡、多安全组规则:基于SDN构建VPC,每个虚拟网络端口都可设置安全组;
上下行带宽:只收取上行费用,下行默认免费30Mbps,花1M带宽的费用,享用30M的数据上传、软件包安装速度;
按需计费、按月计费、预付费、后付费:多种计费方式、多种付费方式
运营功能主要包括:
基于OpenStack各组件Policy策略的销售、代理商权限控制:销售人员、代理商可以查看所属用户资源,但权限必须得到严格控制;
资源配额限制、客户资源管理、客户消费预估、财务管理、工单管理、代金券管理、代理商管理;
今天的分享大致到这里,感谢云头条智囊团,感谢各位!
提问环节:
问:宝德的超融合和awcloud有关系吗?
答:由年intel发起的生态圈,宝德主要作为ODM厂商,云管理平台厂商包括AWCloud,99Cloud,Smartx等,上层会有一系列的SI和ISV。
问:宝德云的主要目标客户和行业是?
答:宝德云包括公有云和私有云,目前公有云的客户主要在于游戏,电子商务和P2P金融等互联网行业,宝德私有云会利用服务器在全国和省市渠道,各行业都有落地案例,比较典型的有政务的江苏国税税务平台,广电行业的安徽广行的”视频看护”云平台。
问:宝德云为私有云公有云都提供哪些售后服务呀?
答:公有云上除了云平台功能的使用支持外,我们的客服还经常被客户要求,做一些简单的中间件安装。私有云分为两类:托管云和企业内部云,比如安徽广行的“视频看护”云平台托管于广电的机房,江苏国税税务云平台部署于南京国税机房内网。
问:私有云只做托管么?
答:除了初期的硬件安装,交换机配置,软件部署外,后期在网络可达的情况下,会提供一年的免费服务支持。如果网络不可达,会让各地的服务器售后团队到达现场支持。
问:私有云的话我们对OpenStack定制化做得多吗?如果定制太多,你和社区的同步是怎么处理?
答:用到的每个OpenStack每个组件都要修改,目前是基于Icehouse,backport社区重要的BugFixed.
问:游戏云使用什么存储?
答:存储方案包括分布式存储,集中式存储。我们测试使用过本地存储的RAID+BBU+1GB Cache,Sheepdog,Nexenta,SolidFire,ScaleIO,GlusterFS,CEPH,SAN等等方案。
问:SDN你们采用什么方案?
目前是采用纯软件的SDN,Vxlan+LinuxBridge。
问:Icehouse好像网络节点不支持HA,看来你们应该是做相当多的定制,Vxlan也是软件实现?
答:是的,我们也测试过Centec,Pica8的软硬件结合方案,私有云客户有相应的需求,都可以做选择。网络节点的HA目前是采用主备方式,除了主备式外,目前还有DVR,Dragonflow,硬件SDN等分布式路由的方案,社区的Neutron功能也还在不断完善。
问:游戏云iops要求还是挺高的吧,晚上又是集中高峰时段,分布式存储压力扛得住吗?
答:分布式存储目前采用双冗余万兆网络,intelS3700SSD,经过一些调优IOPS上有一定的距离。宝德也有全闪存的存储陈列,可以提供Cinder的FC SAN,IP SAN 驱动。
问:L3的网关是落在网络节点上吗?
答:是的,就是虚拟路由器,多套主备式的网络节点,把租户调度到不同的网络节点,比较期待华为以色列团队主导的Dragonflow。在小规模的私有云环境下,也可以选择novanetwork的FlatDHCP+MultiHost.
问:其实私有云真的有很多VPC需求吗?
答:其实并不一定,所以FlatDHCP+MultiHost也是可以满足部分客户的,宝德云1.0就基于nova network,提供比较简单的网络服务,宝德云2.0才使用了Neutron。
问:从宝德云的角度分析,您怎么看公有云和私有云未来的发展趋势?
答:其实,宝德目前是以公带私,以私养公,公有云的价格竞争非常激烈,宝德会更多利用服务器的优势,宝德在公有云上也是一名新兵,毕竟不具备像BAT一样的互联网基因,以AWS为楷模,目前差距还是挺大的,我们只有不断提高研发,运维,运营水平,好在云的市场很大,未来也有很长的路要走,各种技术融合创新 未来的应用场景会更多样。
以上是关于世界最大OpenStack私有云是如何运营的 00 OpenStack中国社区的主要内容,如果未能解决你的问题,请参考以下文章