一、天河二号概况
在世界超算Top500排名中取得四连冠的天河二号已经于2014年初部署在国家超算广州中心并对外提供服务。与已有超级计算机系统的一个重要区别是,天河二号不仅仅定位在高性能计算,而是通过异构多态的体系结构设计与实现,期望能够为广州市、广东省甚至更大范围的政府部门和企事业单位的信息化建设和大数据处理提供强有力的资源支撑。
天河二号的目标定位
目前,天河二号的目标定位为:满足高性能计算、高吞吐率信息服务和海量数据处理等多领域复杂应用需求,具体信息如上图所示。
与此同时,天河二号及辅助设施的整体投资是24个亿,是属于异构多态体系结构,系统有着近20000个节点:双路12核E5-2600系列处理器,64GB内存、定制的内部高速互联(224 Gbps)、2个GE、总存储容量12.4 PB。
由于业务需求差异,以往的面向HPC的软件栈已经不能满足多种应用的需要,所以我们采用了云的方式来支持新的业务,将广州超算中心打造成支撑智慧城市建设的公共基础设施,服务于电子政务建设、企业资源租赁、海量信息处理等信息化建设发展的多个方面。这是与传统科学计算完全不同的应用模式,主要的挑战如下:
- 业务多样:网站、信息管理系统、渲染、备份…
- 软件平台多样:Linux/Windows、Oracle/MySQL/SQL Server、Apache/Nginx、Tomcat/Weblogic…
- 资源规模弹性伸缩:重大事件/重要时间节点的突发访问
- 可靠性、可用性与安全性要求高
二、天河二号上OpenStack的部署及优化
我们支持的云业务,首先是党政机关,提供私有云部署、云安全解决方案、应用迁移、培训支持,提高办公效率和降低能耗;其次是中小企业,提供资源租赁,私有云部署、混合云部署、安全增强,使用户关注自身核心业务;最后是其他行业用户,提供私有云部署、混合云部署、应用迁移、培训支持,支撑用户业务创新。
我们目前用于支撑业务的环境主要基于OpenStack的IceHouse和Juno两个版本,后面会逐渐迁移到Juno版。需要注意的是,我们不是简单的把原生的OpenStack拿过来部署,而是根据应用的需求以及实际的硬件环境,对OpenStack进行了大量的定制和优化,这些工作最终形成了我们的企业级解决方案KylinCloud云平台。
天河二号对OpenStack的主要增强
主要的增强优化包括:重新定义了一套使用流程,全新改写UI,扩展细粒度配额管理,支持端口转发。因为有上万台机器及IP是扩展的,所以做了相应的映射。在调度方面,支持QoS保障以及扩展了多种调度策略。另外增加了计费功能,优化监测性能。
天河二号OpenStack集群网络布局
我们规模确实比较大,所以选择了这样的网络布局:50个机柜、6400个节点,两个柜的控制节点设置在同一个WLAN,以Cell为调度单位,管理网络/业务网络分离和基于以太网(部分子云基于TH-NI)。在虚拟主机方面:提供基于KVM的全虚拟化、基于LXC/Docker的轻量级虚拟化。虚拟网络是基于OpenvSwitch,支持多种虚拟网络类型。我们也采用了分布式高性能全局块存储,基于Ceph构建,所有节点形成一个全局的分布式存储池,基于TH-NI高速网,用作虚拟镜像、逻辑卷和运行实例的统一存储后端,裸容量6.4PB;IP-SAN存储:裸容量1PB,万兆接入云平台,用于集中的文件存储或备份;FC-SAN存储:裸容量500TB,用于高I/O负载应用支持。
另外,在平台参数方面我们是这样优化的,主要是调整数据库、消息队列的参数阈值;KVM参数优化:VHostNet、KSM;物理机OS的虚存优化:swappiness;Nova、Neutron等关键服务的参数优化;开启服务的多进程;Ceph OSD进程优化。
负载均衡和高可用优化
为了实现服务的负载均衡和高可用,主要做了这些部署与优化:控制服务采用LVS Keeplived,MySQL集群,RabbitMQ集群,组件之间的数据库、消息队列的分离,单独的Neutron集群及L3-Agent高可用,单独的Cinder-Volume集群。在实现虚拟机高可用方面,以16个物理节点为单位构建高可用区域,通过监控物理节点和虚拟机的状态,在状态发生异常时及时启动新的虚拟机支撑应用的运行,也定制了灵活的触发策略。
软件动态加载
另外我们是基于boot from volume和rbd clone做的软件加载,方便用户快速的使用需要的应用软件,不必在启动虚拟机后再安装,我们提供了可加载的应用软件列表,以及用户启动VM时,勾选需要加载的应用软件,启动虚拟机后即可使用软件。比如你在上图基础上怎么做相应不同的软件支持,如果每个软件都要做一个Image,相对来说开销比较大,我们就做一个Image的动态拼合加载,做一个干净的Base Image,再加上一个增盘,当用户在需要MySQL的时候,就加上一个增量Image,想用Oracle时加载另一个增量Image。
在开发的时候就在想,如果想要做成一个平台或者对外提供服务的平台的话,运维方面的工作不可少,那就需要一个大规模自动化的运维工具,实现对状态的预见,对故障有一个收集和判断。目前来说,我们的工具主要能够实现虚拟网络的带宽控制,云平台及支撑组建的健康状态监测,基于日志分析的故障定位于分析,物理机与虚拟机的监控与告警,安全补丁与漏洞,Ceph的RBD离线恢复工具,特性功能Backport与小版本更新。
三、应用适配
电子政务类应用
主要目标是,基于天河二号主机系统的硬件资源,与广州市电子政务中心及相关企事业合作,为各类电子政务应用提供弹性计算、存储和网络资源以及安全、可靠的服务平台。首先就是电子政务类应用,目前广东省省级教育数据中心已上线四个信息管理系统,今年年内上线14个系统,不久的未来,将成为广州市电子政务的主要运载平台。
在我们实施时需要做到:迁移已有多种系统和平台软件:Redhat/CentOS、Oracle/WebLogic等其他第三方公司开发的软件,已有VMWare平台上部署系统的迁移,数据的批量导入,物理/逻辑隔离,服务的稳定性、持续性,应对突发访问,与其他服务提供商之间的容灾备份。我们采取了这些措施与优化:P2V、V2V镜像转换,负载感知的虚拟机规模自动伸缩;此外,我们才采用了基于Ceph RBD卷的虚拟机和虚拟卷备份,做到每天一次增备,每周一次全备,同时完善虚拟机高可用机制,保证业务持续性。
渲染类应用
面向各文化科技公司和工作室的业务需求,基于天河二号为动漫渲染的复杂场景和特效提供强大的计算能力支撑,构建动漫渲染云,完成高质量的渲染任务和高分辨率的真实感渲染,缩短场景的渲染周期,提高动漫作品的制作效率。目前,某文化科技集团已进入其生产线,数量超过千节点规模,同时另外一个面向互联网的渲染云平台也开始提供互联网服务。
这就使得单个虚拟机性能要求高;针对渲染任务集群的网络优化,提供高带宽、低延迟的网络传输;渲染开始、结束时有大量的文件读写操作,需要对磁盘IO进行优化;满足渲染中数据存取频繁的要求;弹性的资源扩充机制,满足不同渲染任务对计算能力的不同需求;广泛的平台支持,支持多种渲染平台和软件。所以,我们限制渲染集群的规模,减轻共享读写带来的IO瓶颈;使用KSM,降低内存消耗;物理机超线(HT);根据实际效果调整内存超售比例;调整物理机的open file limit;在渲染过程中有大量的(小)文件读写;优化虚拟机的网络参数,提高带宽等。
对HPC类应用的支持
将云计算的优势引入到传统的高性能计算领域,使用目前成熟的容器技术为用户提供可定制、隔离性强、可弹性伸缩、界面友好的HPC集群。目前,诸多HPC应用的CPU性能折损在1%以内。同时也支持了CPU/MIC异构并行,达到万级计算核心。
为了做到这些,就要求:接近物理机的性能,充分利用天河节点的加速部件和高速网,拉通HPC软件栈,实现全系统资源统一管理,更好的资源共享与隔离,可定制的软件环境,满足弹性的资源使用需求,在一定配额下用户自助申请资源。所以,我们使用基于Docker的轻量级虚拟化:基于现有HPC环境制作镜像,整合HPC软件栈;虚拟机直接模式访问MIC加速器和TH-NI高速网;虚拟机直接访问主机挂载的Lustre共享存储。另外就是全系统计算资源的混合调度:根据任务属性判断Host,以及计算节点角色的按需切换。
至于为什么我会想用Docker,从操作系统角度上看,说白了它只是虚拟化的进程空间,性能折损低。具体而言,我是用了Docker的Container功能,因为较底层的LXC相比,它具有一定的高层管理工具,把OpenStack和Container做了一个绑定,将数据库和消息队列本身的连接数和使用内存数放大,以及网络和KVM开关都打开。
四、社区贡献
在以上部署实践的基础上,天河二号的云平台研发团队深入到OpenStack源代码内部,围绕遇到的问题和需求开发了一系列新特性和大量的Bug修复,并积极反馈给社区。2012年以来团队向社区贡献了大量代码,并在最新的Juno核心组件的代码贡献(commit数目)位居国内第二位。关于Ceph我们也做了一些工作,向Ceph社区提交100 commits,在最新的v0.93版本中,团队代码贡献排名第2,个人排名第4。
五、基于OpenStack打造高效安全的企业云服务平台
围绕着充分发挥天河二号的性能优势、为中小企业提供安全、高可用、弹性的高品质服务这一目标,团队基于OpenStack进行了一系列深入的产品化定制与改造,形成了独立的云服务解决方案KylinCloud─麒麟云平台。麒麟云平台采用互联网自助服务的模式,面向企事业单位提供IaaS和PaaS层的IT服务,希望成为小微企业的IT服务的承载平台,并基于此构建完善的IT服务生态环境。
KylinCloud云平台架构
目前,麒麟云平台已经稳定运行在天河二号上,在用户单位的配合与支持下,多个成功应用已经验证了其基于天河二号提供云服务的可用性、可靠性和可扩展性,为超级计算机系统的应用开拓了一条崭新的途径。
同时,研发团队也在努力构建面向商用硬件的完整解决方案,面向不同用户、不同应用的需求,提供深度定制、安全、可靠的云服务。此外,麒麟云平台正在与国内著名安全系统解决方案提供商合作,对麒麟云平台的系统安全、平台安全和虚拟机安全进行全方位的定制与增强。(责编/周建丁)
作者简介:谭郁松,博士,国防科学技术大学计算机学院/国家超级计算广州中心研究员,天河系列超级计算机的骨干研究人员,一直从事操作系统和云计算等领域的研究工作,目前带领团队从事超大规模云平台和大数据处理平台的研发。