软硬件融合:超大规模云计算架构创新之路
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.3 云计算的特点

云计算服务商所拥有的数据中心数量众多、规模庞大,所提供的服务多种多样,这使得云计算具有很多特点。其中,本质、关键的特点是大规模、“大”数据、多租户等,随着云计算的持续发展,这些特点会更加突出。

1.3.1 更大的规模

云计算数据中心规模越来越大,通常都是百万级的服务器规模。例如,AWS在全球拥有22个地理区域和69个可用区,服务器数量为400万台左右。庞大规模服务器任何一点小的优化,都可以帮助用户节省数以亿计的成本,这对服务器提出了很多新的要求,很多大型互联网公司都开启了各种定制硬件的道路。例如,谷歌大部分服务器都是自己设计的,采用定制化托盘,内建备用电源,比传统服务器的成本和能耗低得多,为谷歌节省了大笔电力开支。再如,Facebook携手英特尔等公司于2011年成立了OCP(Open Compute Project,开放计算项目),旨在通过开源硬件技术加快数据中心技术和运维等方面的创新步伐。OCP一直围绕网络、服务器、存储设备和开放Rack等展开创新工作,以开放硬件及相关软件的形式促进整个生态的发展。

由于通用服务器要适应多种应用并兼顾扩展性,因此较难同时兼顾性能、能耗和成本,于是,为云计算定制的云计算服务器运用而生。云计算服务器对硬件资源进行更加充分的利用,实现量体裁衣,避免硬件资源的浪费。相比于传统服务器,云计算服务器需要大规模部署,这要求云计算服务器部署密度更高、能耗更低及易于管理。

·高密度:云计算数据中心越来越大,土地资源有限,机房空间捉襟见肘,如何在有限空间容纳更多的计算节点和资源是云计算发展的关键。

·低能耗:云计算数据中心建设成本中电力设备和空调系统投资比重达到65%,并且云计算数据中心运营成本中75%是能源成本。由此可见,能耗的降低对云计算数据中心而言是极其重要的,而云计算服务器是能耗的核心,因此云计算服务器实现低能耗对云计算数据中心的发展十分有利。

·易于管理:规模庞大的服务器管理极具挑战性,通过云计算平台管理系统、服务器管理接口实现自动化的部署和管理是云计算数据中心发展必须考虑的问题。

1.3.2 更“大”的数据

数据的使用正在改变我们的生活、工作和娱乐方式。全球各行各业的企业都在使用数据来改造自身,以使企业变得更加敏捷;根据数据引入新的业务模型并发掘新的竞争优势,以改善用户体验。我们生活在一个日益数字化的世界中,几乎生活的方方面面都已经数字化,甚至包括睡眠。

如图1.3所示,IDC(知名市场研究公司)预测,到2025年,全球数据领域的数据规模将增长到175 ZB。IDC定义了数字产生和存储的三个区域:核心、边缘和终端。

图1.3 IDC预测的全球数据按年增加量

·核心(Core):由企业和云计算服务商中的指定计算数据中心组成,包括所有类型的云计算(如公共云、私有云和混合云)及企业运营数据中心(如运行电网和电话网络的数据中心)。

·边缘(Edge):不在核心数据中心、经过企业强化的服务器和设备,包括现场服务器、基站和区域的较小数据中心。

·终端(Endpoint):包括网络边缘上的所有设备,如PC、电话、工业传感器、联网的汽车和可穿戴设备等。

如图1.4所示,从数据产生规模的角度来看,终端所占百分比是逐年下降的,而核心和边缘所占百分比越来越多;从数据存储的角度来看,终端存储的数据量随着时间推移逐年与核心存储的数据量持平,这使得核心成为所有类型数据的首选存储库。IDC预测,到2024年,在数据存储方面,核心的数据占比将增加一倍以上。

图1.4 数据产生和存储的三个区域的占比

如今,数据量仍呈爆炸式增长,这么多数据的产生、传输、处理、存储、分析等都会对硬件的性能、带宽、延时、空间、功耗、成本等构成极大的挑战,应对大数据时代的挑战有赖于体系结构更深层次的创新。

1.3.3 更多的租户

多租户是云计算最为显著的特点。多租户是在一定安全机制上让多个不信任方共享资源,同时给这些不信任方完全独占资源的“假象”。例如,公寓大楼为每个租户提供单独的空间,同时为他们提供公共空间、安全性及物业等资源。多租户模式可以显著降低云计算用户的资源拥有成本,这使得云计算逐渐成为IT基础设施的主要模式。

Gartner(知名咨询公司)给出了多种不同层次的多租户模型,如图1.5所示。数据中心IaaS层的多租户模型主要是基于虚拟机共享硬件的虚拟化,通过虚拟网络技术构建VPC,为每个租户提供独立的资源域,并创建虚拟机实例。云计算服务商为满足不同租户个性化需求,提供了多种应用场景和主机类型,为不同用户主机匹配个性化网络安全策略,并且针对不同租户设定不同的本地或远程存储盘的安全、加密和备份策略等。

图1.5 Gartner弹性和多租户参考模型

若想更好地在一个云计算体系里支持更多的租户,并且以租户VPC域、服务实例、I/O设备等为单位提供更多个性化的服务支持,同时能够兼顾性能和成本,则需要硬件更细粒度虚拟化的支持。

1.3.4 更复杂的网络

网络是数据中心核心的功能,其关键的两个性能指标是带宽和延迟。云计算是多租户场景,多租户域间隔离、跨域访问及动态的网络变化也是数据中心网络非常重要的特点。

1.更大的带宽

数据量越来越大,网络传输的带宽也在快速升级,叠加数据中心东西向流量,据英特尔估计,数据中心内部的流量每年以25%的速度增长。当前数据中心大规模商用的主流数据带宽是25Gbit/s,预计未来会逐步过渡到100Gbit/s。

带宽逐步增大意味着许多现有的网络数据处理架构会逐渐无法满足更高性能的处理要求。例如,传统的基于内核TCP/IP的网络处理会逐渐被DPDK取代,目前已经有完全硬件卸载的网络处理设备进行了批量部署。

2.更低的延迟

Akami的一项研究表明,页面加载速度每延迟1s就会导致转化率平均下降7%,页面浏览量下降11%,用户满意度下降16%。在金融行业中,即使1ms的延迟也会对高速交易算法的性能产生巨大影响。金融行业对延迟敏感的一个案例是,某公司投资了4亿多美元,只是为了将纽约与伦敦之间的传输时间缩短5ms。

在线事务处理(OLTP)的工作负载主要由南北流量控制、客户端请求、服务器响应,通过相对简单的三层网络结构就能得到很好的服务。但是,随着社交媒体和移动应用程序的爆炸式增长,流量模式已从南北向(客户端和数据中心之间)转变为东西向(数据中心内部的流量)。据估计,单个在线查询可以在数据中心内部生成数百甚至数千个请求,数据中心只有在这些请求全部生成之后才能对其进行响应。在这种模式下,即使数千个请求同时执行,并且需要花费较长响应时间的请求相对少见,但该模式仍然最终决定了服务的总体响应时间。

3.域间隔离和跨域访问

VPC是云计算服务商在数据中心内部为用户提供的一个逻辑隔离的区域,用户可以在自定义的虚拟网络中创建云计算服务资源。底层的虚拟网络系统实现了不同用户网络区域的隔离。

不同的私有网络区域并不是完全封闭的,有些场景需要跨域访问。例如,一些非实例型“独立服务”提供的服务就不是完全封闭的,当用户从自己的VPC去访问另外某个VPC服务的时候,通常有两种做法,一种是使用公网IP通过公网访问;另一种是利用一些特定的满足安全机制的跨域访问服务,通过数据中心内部网络访问,以此来提升访问效率,即数据中心内部的跨域访问。又如,数据中心按照区域和可用区进行划分,用户跨区域数据中心多地容灾或特定的服务和数据通信,需要跨数据中心访问。

通过VPC把不同用户或系统的资源隔离是出于安全的考虑;跨域访问是在保证安全基础上出于性能和功能的考虑。

4.动态的网络变化

单个数据中心服务器规模可以达到数万台,需要数千台网络设备将这些服务器连接在一起,这种大规模的数据中心网络管理难度大,网络运行故障定位难,运维成本非常高。大规模数据中心动态网络变化主要体现在如下几方面。

·云计算是多租户模式,不同的租户业务之间需要完全隔离,数据中心通过虚拟网络来实现不同租户网络域的隔离。租户及租户的资源一直处在动态的变化中,这加剧了网络变化的频次并加大了网络管理的难度。

·数据中心的数万台服务器不可避免会发生故障,用户业务在不同的物理服务器之间迁移也会对网络变化产生影响。

·互联网上层业务日新月异的变化也会对网络变化产生影响。

1.3.5 安全问题无处不在

在Mazhar Ali等人于2015年发表的文章Security in cloud computing:Opportunities and challenges中,细致地总结了云计算安全所面临的挑战。除了与传统IT基础设施共享的风险,云计算服务的部署方式还引入了特定于云的安全风险和漏洞。云中的安全风险可能与传统IT基础设施的风险在性质或强度方面有所不同。

云计算允许多用户通过虚拟化技术使用同一资源池,尽管这些虚拟化技术引入了快速的弹性和资源的优化管理,但也给系统带来了一定的风险。如图1.6所示,通过网络通信安全、架构安全和合同/法律三大领域来梳理云计算场景面临的安全挑战。

1.网络通信安全

云的外部通信(用户与云之间)与Internet上的通信类似。基于互联网的特性,云通信面临的挑战与传统的IT通信面临的挑战相同,这些挑战包括拒绝服务、中间人、窃听、基于IP欺骗的洪水和伪装。这些挑战的解决方案也与常规采用的解决方案相同,如安全套接字层(SSL)、互联网安全协议(IPSec)、加密算法、入侵检测和防御系统、流量清理和数字证书。

云的内部通信,即数据中心内部东西向的网络通信,主要体现在如下几方面。

·共享基础设施。资源池化不仅是计算和存储资源的共享,还是网络资源的共享。网络的共享为攻击者提供了跨租户攻击的可能性。

·虚拟网络。物理网络上的安全和保护机制无法监视虚拟网络上的流量。虚拟机的潜在恶意活动超出了安全工具的监视范围,这成为云通信面临的严峻挑战。

·安全配置错误。云计算网络基础设施的安全配置对于向用户提供安全的云计算服务至关重要,错误配置会从根本上破坏用户、应用程序和整个系统的安全性。虚拟机、数据和应用程序在多个物理节点之间的迁移,流量模式,拓扑结构的变化都需要动态地管理各种安全策略,而动态管理意味着随时刻刻都可能引发安全风险。

图1.6 云计算安全面临的挑战

2.架构安全

虚拟化允许多个用户使用相同的物理资源,为每个用户实例化一个单独的VM,从而允许在多租户环境中进行资源池化。虚拟化在镜像共享、隔离、逃逸迁移、回退及Hypervisor问题等方面给云用户和架构带来了一定的安全挑战。

云计算模型无法为用户提供对数据的完全控制,而允许云计算服务商行使控制权来管理服务器和数据。数据存储安全方面的挑战体现在如下几方面。

·数据隐私和完整性。与传统计算模型的数据相比,云计算模型的数据在机密性、完整性和可用性方面更容易受到风险的影响。除了静态数据,正在处理的数据也面临安全风险。云计算场景的密码、密钥生成和管理机制也增加了数据加密的潜在风险。

·数据恢复漏洞。资源池具有弹性,会将之前用户的资源在一定时间后分配给其他用户,恶意用户可能会通过特殊的数据恢复技术来获取先前用户的数据。

·存储介质销毁不当。当磁盘需要更换,数据不再需要,以及终止服务的时候,需要销毁存储介质。多租户会增加设备清理的风险,在某个用户共享的磁盘寿命结束时,可能由于其他用户仍在使用而无法销毁。

·数据备份。需要定期备份数据,以确保在某些特殊情况下,数据可用并可及时恢复。此外,还需要保护备份存储,防止未经授权的访问和篡改。

云计算服务商通过Internet向云用户提供服务和应用程序。云应用程序具有与传统Web应用程序相同的漏洞。但是,传统Web应用程序的安全解决方案并不适用于云应用程序,因为云应用程序中的漏洞可能比传统Web应用程序更具破坏性,并且多租户共存使问题变得更加严重。传统Web应用程序中的十大风险:注入(SQL、OS和LDAP)、身份认证和会话管理破坏、跨站脚本(XSS)、不安全的直接对象引用、安全配置错误、敏感数据暴露、缺少功能级别的访问控制、跨站请求伪造(CSRF)、使用已知易受攻击的组件、无效的重定向和转发,传统Web应用程序的开发,管理和使用必须考虑这些风险。API桥接了用户和云中的服务,API的安全性极大地影响云计算服务的安全性和可用性。

在云计算环境中,数据和服务的机密性、完整性与身份管理、访问控制联系在一起,跟踪用户的身份并控制未经授权的访问非常重要。与传统的IT设置不同,云可以使用不同的身份验证和授权框架,同时使用相同的物理资源来处理不同组织的用户。云计算服务具有弹性和动态性,经常重新分配IP地址,并在较短的时间内启动或重新启动服务。云计算服务的按需付费功能使用户可以频繁创建和释放云资源,但是需要使用动态、细粒度、严格的访问控制机制来防止未经授权的操作。

1.3.6 面向特定应用场景的云计算服务

云计算公司通过提供种类丰富的云计算服务来帮助用户快速发展业务、降低IT成本及快速扩展。很多大型企业和热门的初创公司都通过AWS等云计算服务商提供的云计算服务来完成自己的工作负载,包括Web和移动应用程序、游戏开发、数据处理与仓库、存储、存档及很多其他工作负载。

AWS为用户提供了大量基于云计算服务的全球性产品,如图1.7所示。丰富的服务类型意味着针对各种特定的应用场景(如高性能计算、机器学习、内存数据库、网络转发、存储等)进行了定制、优化的服务设计。

图1.7 AWS产品服务分类

针对特定场景定制、优化服务设计的原因如下。

·庞大的规模。云计算的规模越来越庞大,大型云计算服务商通常都拥有百万级规模的服务器,并且规模仍在持续扩大,即使这些服务器分散到不同的应用场景,各个应用场景依然具有数十万台服务器。因此,非常有必要针对特定的应用场景进行服务设计的定制、优化。

·特定应用场景通常都性能敏感(通用应用场景无法覆盖)。特定应用场景不仅需要软件层面的优化,更需要硬件层面的优化。例如,AWS 的云计算主机通过基本 CPU、内存、存储和网络的不同组合,扩展出了计算优化、内存优化、存储优化及业务加速等不同的主机类型,这些扩展的主机主要用于各种特定应用场景。如果特定应用场景性能要求更加苛刻,这些扩展主机依然无法满足,则需要更深层次的定制优化。

庞大的规模及特定应用场景的需求是硬件定制优化本质的推动力量。然而,不同应用场景对底层软硬件有着不同的需求,云计算应用场景硬件定制最大的挑战是提供统一的平台来满足各种不同应用场景的优化定制需求。我们需要深入体系结构,通过底层软硬件的协同优化重构,提供灵活、可扩展的软硬件平台,以更有效地支撑各种性能敏感应用场景的需求。

1.3.7 服务接口的兼容性和通用性

大多数用户都希望云计算服务能够向前兼容,这样已有的系统可以无缝迁移到云。云计算服务的用户类型很多,只有云计算服务提供的是通用接口,才能够保证云计算服务覆盖绝大部分用户的应用场景。例如,云计算应用场景主流的操作系统是Linux,它不仅能兼容许多开源的商业软件系统,也能向前兼容很多旧版本的软件系统。

通过虚拟化技术为上层虚拟出完全一致的硬件平台,包括一致的处理器架构、内存访问及I/O设备。绝大部分云计算服务器的CPU都是x86架构的,都支持VT-dCPU和内存的完全硬件虚拟化,这样能够在不损耗云计算服务器性能的基础上提供一致的处理器架构和内存访问。但物理I/O设备的类型通常很多,即使同种类型的物理I/O设备,其设备供应商也不止一个,这就形成了不一致的I/O接口。

一致性的I/O接口主要靠类虚拟化的技术来实现。Virtio是已经得到广泛应用的通过I/O类虚拟化技术实现的接口标准。Virtio通过分层的方式提供标准的软硬件接口,并在其之上封装网络、块存储、字符等各种特定类型设备的访问,这样的优势是可以最大限度地复用大部分设计;缺点是没有针对特定类型设备的特点进行优化,效率较低。