登录 注册 下载

从虚拟化到私有云

1

随着计算机技术的发展,单台服务器的处理能力、存储容量日益增加,与此同时,业务日益复杂,应用模块数量逐步增加。一方面在同一台服务器上各个不同的应用模块需要更强的隔离性以防相互干扰,另一方面同一应用模块需要分布在多个不同的服务器甚至不同平台、不同物理机房以获得更高的性能和可用性,在这种环境和需求的推动下,虚拟化和云计算等技术得到了飞速发展。

虚拟化,是在同一台物理服务器上运行多个操作系统/容器,各个系统/容器所管理的资源(cpu、内存、存储、网络、应用程序)相互隔离,一个虚拟系统/容器中出现内存溢出、cpu超载等问题,不会影响这台物理服务器上的其他系统/容器;同时硬件被虚拟化意味着虚拟机可以迁移到另一个配置不同的物理服务器上,不会因设备厂家、型号不同而影响运行。

云计算,则是在虚拟化的基础上,使计算分布在大量的分布式计算机上,而非本地计算机或远程服务器中。企业数据中心的运行将与互联网更相似。云计算技术使得一个个被虚拟化的独立物理服务器整合到一个具备分布式、高可用、动态伸缩和迁移的平台,大大提高业务连续性和设备利用率。

联动优势已经将虚拟化技术广泛用于生产系统。几乎所有的新购PC服务器都被以虚拟化方式使用。虚拟化技术的使用,大大提高了设备利用率,降低了机房机柜、人员等运维成本。

随着虚拟化设备规模的扩大,虚拟化管理的问题也逐步体现出来,在虚拟化模式下,一台服务器上虚拟的系统的数量和风险成正比,同时众多的虚拟机的维护,也给运维人员带来了很大困扰。因此,在单机虚拟化模式下,一台服务器最多虚拟4-8台虚拟机。

为了进一步提高设备利用率,降低运维成本,联动优势开始了云计算技术的调研,并在IDC机房的测试环境中正式上线了第一个基于OpenStack的私有云平台。之后陆续将电商UAT环境、电商测试环境从原先的虚拟化平台迁移到私有云平台,小微测试环境也部分迁移到云平台。

什么是OpenStack?

OpenStack,是一个由NASA(美国国家航空航天局)和Rackspace合作研发并发起的开源的云计算管理平台项目,是基础架构云(Infrastructure as aService,即IaaS)的事实标准,为企业或消费者提供所有计算基础设施的利用,包括处理CPU、内存、存储、网络和其它基本的计算资源,用户能够部署和运行任意软件。消费者不管理或控制任何云计算基础设施,但能控制操作系统的选择、存储空间、部署的应用。

整个OpenStack环境由控制节点、计算节点、网络节点、存储节点四大部分组成。控制节点负责了对其余节点的管理,包含虚拟机建立,迁移,网络分配,存储分配等;计算节点负责了虚拟机运行;网络节点负责了对外网络与对内网络之间的通信;存储节点负责了对虚拟机的额外存储管理。如果把OpenStack平台当做一个数据中心,控制节点就是数据中心的中控室,网络节点就是数据中心的网络系统和外部访问接口,计算和存储节点则相当于数据中心的内部的一个个服务器和磁盘阵列。

OpenStack的网络模块主体是一个叫做neutron的虚拟机交换机软件,可以构建复杂的数据中心级虚拟网络系统,可以通过虚拟交换、虚拟路由、虚拟防火墙等技术隔离各个部门、项目的计算资源。

除了IaaS之外,云计算还有 PaaS、SaaS两个层次。

PaaS (Platform-as-a-Service),即平台即服务。提供给消费者的服务是把客户采用提供的开发语言和工具(例如Java,python等)、开发的应用程序部署到云计算基础设施上去。客户不需要管理或控制底层的云基础设施,包括网络、服务器、操作系统、存储等,但客户能控制部署的应用程序,也可能控制运行应用程序的托管环境配置。

PaaS可以基于IaaS实现,如Cloud Foundry、OpenShift等方案,也可以直接在物理服务器上部署实现,如基于Docker的 Kubernetes方案。

SaaS (Software-as-a-Service),软件即服务。提供给消费者的服务是云计算基础设施上的应用程序,用户可以在各种设备上通过客户端界面访问,如浏览器。SaaS是结合企业业务开发的,面向本企业用户的平台。

问题与解决

在部署私有云平台的过程中,我们遇到了很多问题和曲折。简单说几个曾经困扰我们的问题

1.真假OpenStack

众所周知,OpenStack已经成为IaaS的事实标准。这个市场很大,很多公司都标榜自己是OpenStack,然而经过部署、试用后发现,其产品或者底层架构部分甚至完全不是OpenStack开源项目的组件;有的产品虽然是基于OpenStack,但是却存在较大的修改或者模块替换;也有产品部署后,很多功能都无法使用。经过试用,这些产品率先被淘汰下来,但却耽误了我们相当大的时间和人力。

发现这个问题后,后期我们在进行产品产品测试前,先要进行产品架构的评估,发现产品存在上述问题的,不再进入测试环节。

2.产品成熟度与开放性

Openstack开源社区版本还存在很大的功能缺失和稳定、支持性问题,这个是出现众多商业公司从事OpenStack开发和服务的主要原因。调研发现,从功能上,社区版和商业版的主要差异是商业版比社区版多了两个强大的企业级应用模块:工单流程和使用计费。企业在选择产品的时候,要想清楚,我们需要这两个功能吗?这两个功能是否能自己开发?这决定我们是购买一个商业软件,还是购买某项商业服务。

3.平台稳定性问题

OpenStack是一个庞大复杂的系统,其高可靠性的基础是多节点多副本,但不等于这个平台不出问题,特别是Openstack这样一个开源的、还在不断完善中的系统,不仅硬件会有问题,软件模块也会有种种问题。这些问题,如果及时发现和处理,云平台强大的容错能力是可以保证服务水平的。然而在平台上线之初,监控没有同步跟上,造成了不少问题。后来,我们狠抓监控,发现有盲点就及时完善,现在大多数软硬件故障都已经做到及时发现,故障率随之大大降低。

4.时间服务问题

作为一个集群,特别是分布式集群,时间的同步是整个集群数据同步的基础。这个细节,在传统生产平台上体会不深(以往某个服务器的时间服务出现问题,顶多是影响一两个模块),但在OpenStack云平台,出现的两次时间服务问题却造成了两次整个平台不可用。原因是,分布式存储需要时间同步来保证数据一致,分布式的访问控制需要时间一致,一旦集群的各个节点出现时间差,存储系统会拒绝服务,其他需要身份认证的服务访问请求也会被拒绝。

为此我们特别加强了时间服务架构的优化和时间服务程序的监控。

5.性能与成本

最开始建设私有云平台的时,在面临千兆网络还是万兆网络,是否使用SSD盘的选择时,由于是测试开发平台,我们都想当然地认为没有必要为一个测试系统使用那么高端的硬件。然而,后面血淋淋的教训告诉我们,云平台节约的是总拥有成本,降低的是单位使用成本,而不是靠用简单、便宜的硬件来节约。没有万兆网络,多副本模式下的数据同步成为集群的瓶颈,没有SSD盘,生产高峰期的IO成为瓶颈。甚至,原先认为性能要求不高、使用旧设备就能满足需要的控制节点,也成为了性能瓶颈,多次引发网络中断问题。

后来,我们从一位厂商架构师那里了解到,千兆网络环境满足几十个虚拟机应该是没问题的,但如果以集群里面出现了一百个以上的虚拟机,千兆的存储网络会成为瓶颈,会造成大量的IO延时和网络延时。同时,存储节点数量越多,集群性能越好。

未来展望

联动优势云平台已经上线运行日趋稳定,大部分平台问题也都得到了解决。为了使平台更为稳定可靠,网运中心即将对私有云平台进行较大幅度的改造和优化:

1.平台版本:从Openstack Kilo,升级到至少Openstack Mitaka版本,这个2016年8月社区新发布的版本在近期的产品测试中表现出更好的稳定性;

2.平台存储网络:从与千兆业务网络共用同一个交换机,变成独立的万兆存储网络,平台服务器增加SSD盘,以彻底提升云平台性能;

3.优化平台架构:使原先的3个独立的存储节点,改变为计算、存储融合的部署方式,使存储更分散,性能和可靠性更高。同时也使得存储节点上的cpu和内存得以充分利用,无形中再次提升整个平台的计算能力。

私有云建设,我们刚刚起步,还有很多需要研究和完善的,一方面平台还有很多功能需要挖掘,另一方面,IaaS只是云计算的起点,如何在IaaS的基础上实现PaaS平台,还是直接在物理服务器上实现独立的PaaS平台,进而结合联动优势业务实现面向应用的SaaS,这些都是我们今后尝试和研究的课题。

分享到:0
^
激活兑换码
关闭
请输入您的兑换码:
姓名:
单位:
职位:
邮箱:
手机号:
地址:
验证码:
激活
提示:
1、您的订阅周期将从兑换码被激活的当日开始计算。
2、同时激活多个兑换码,订阅期限会自动向后叠加。
3、如果您不想立即使用兑换码,可以在稍后任意时间激活,订阅码可赠予他人,但只能激活一次。
4、兑换码激活后,所绑定的授权用户仅限一人使用,不可多人分享账号。若发现违规使用,官方将做销号处理。