2020-07-15
云计算架构下的IT硬件资源池化和服务化
云计算基础架构在传统IT基础架构的基础上,对计算、存储和网络三类底层物理资源进行了虚拟化实现和统一的整合管理,将物理硬件抽象为有机的、可灵活调度和扩展的资源池。
云计算是一个面向服务的架构,按照提供服务的不同分为IaaS、PaaS、SaaS。其中IaaS(Infrastructure as a Service)作为云计算的基础服务,实现了对计算、存储和网络三类虚拟化资源池的服务化封装,提供包括计算资源、存储资源和网络资源的服务化形态,可动态适应不同应用场景下的服务化资源请求,提高效率,降低TCO。
云计算资源池的软硬件支撑
云计算的硬件环境依然是传统的计算(服务器)、存储、网络类IT硬件,在一定的软件支撑下具备了虚拟化的抽象表现能力。例如:
1)服务器在虚拟机软件或者容器的作用下可以实现对CPU、内存、带宽、网络I/O、存储I/O的抽象和分割,形成计算实例实体;
2)存储硬件资源通过分布式块存储(如Ceph)、分布式文件系统(如HDFS)、存储网关(如IBM的SVC)等可以被抽象隔离为不同的对象存储、文件存储单元等;
3)SDN架构下,基础网络设备如路由器、交换机只负责数据交换和转发,网络的控制功能上移并集中到SDN控制器来实现,通过软件来定义网络拓扑、资源分配等。
云计算IaaS服务化的软件支撑
云计算IaaS的核心是将虚拟化的计算资源、存储资源、网络资源进行统一管理并以服务的形式提供给上层应用或者用户去使用,这需要通过云管理平台或称为云操作系统来实现。
目前主流的云操作系统框架是OpenStack,为了实现底层物理资源的识别接入以及虚拟化抽象,OpenStack也需要与虚拟化软件集成使用。例如RedHat的解释:OpenStack本身不会虚拟化资源,但会使用虚拟化资源来构建云。OpenStack提供了操作基础设施并将其资源提供给上层应用或用户的工具,其官网定义如下:
What is OpenStack? OpenStack is a cloud operating system that controls large pools of compute, storage, and networking resources throughout a datacenter, all managed through a dashboard that gives administrators control while empowering their users to provision resources through a web interface.
目前OpenStack已经发展到Ussuri版本,该版本是OpenStack的第21版,它在核心功能、自动化、跨单元冷迁移、容器化应用程序等支持方面进行了改进。
OpenStack技术已经被全球众多的综合型IT巨头、互联网公司、通信设备集成商所使用。部分公司还基于OpenStack进行了二次开发,以满足功能、性能、可靠性、安全性等方面的定制化需求,例如中兴通讯的郁金香弹性云计算系统TECS OpenStack能够支持NFVI部署;腾讯云的TStack提供集成IaaS,PaaS和SaaS的全面的云服务解决方案;RedHat OpenStack Platform基于OpenStack的“Train”进行二次开发,添加特定的产品组件和功能。
OpenStack服务组件
OpenStack被分解为多个服务,允许您根据需要即插即用组件。如下映射供了一个最新版本的OpenStack服务全景视图。
OpenStack是一个分布式系统,各个服务可以分布部署到不同的节点上,其服务中的各个组件也可以分布部署到不同的节点。这种分布式特性使得OpenStack具备强大的灵活性、伸缩性和高可用性。
虽然OpenStack拥有很多的服务模块,但是管理计算、存储和网络资源的核心服务模块并不多。例如,
1)对于通过虚拟机或者裸金属供应计算实例的场景:
Nova管理计算资源,管理计算实例的生命周期,是核心服务
Glance提供OS镜像,所有计算实例的启动都将使用Glance提供的镜像,属于存储范畴,是核心服务
Neutron提供网络连接服务,负责创建L2和L3网络,为计算实例提供虚拟网络或物理网络连接,是核心服务
Keystone为所有OpenStack服务提供认证和鉴权管理服务,是核心服务
Cinder提供块存储服务,为计算实例提供卷,是核心服务
2)对于通过容器供应计算实例的场景:
Zun管理计算资源,无需任何虚拟机管理即可启动和管理应用程序容器,是核心服务
Neutron管理网络资源,是核心服务
Keystone为所有OpenStack服务提供认证和鉴权管理服务,是核心服务
Cinder提供块存储服务,为计算实例提供卷,是核心服务
Glance提供容器镜像,所有计算实例的启动都将使用Glance提供的镜像,属于存储范畴,是核心服务
OpenStack通过这些互补的服务组件提供了基础设施即服务的服务化封装,向上提供API以进行集成。
云计算基础设施软硬件部署形态
- 云计算的底层物理资源主要为来自不同厂商、不同架构的物理网络设备,包括服务器、存储、路由器、交换机等,提供最底层的物理支撑能力。基础设施硬件整体主要以物理数据中心的形式存在,形成物理资源池,且部署形态上根据业务场景的不同,可进一步区分为是否设置高可用能力等,以增加基础物理资源的可靠性和可用性。
- 计算资源的虚拟化实现方式目前主要为Hypervisor虚拟化和容器虚拟化,其中Hypervisor虚拟可进一步区分为裸金属架构和寄居架构,其软件部署形态如下:
1)Hypervisor裸金属架构:虚拟化软件直接运行于服务器硬件之上;
2)Hypervisor寄居架构:虚拟化软件以应用程序的形态运行于操作系统之上;
3)容器虚拟化:容器虚拟化主要依赖于容器引擎,运行于操作系统之上;
3. 存储资源的虚拟化实现和选定的存储体系结构有关,不同厂商、不同架构的硬件在实现存储虚拟化方面有一定的差异。一般分为三个层次的虚拟化实现:
1)基于主机的存储虚拟化:由主机操作系统下的逻辑卷管理软件,从底层物理存储资源创建连续的逻辑地址空间,并按需分配逻辑卷,如LVM;
2)基于存储设备的存储虚拟化:在存储设备内部添加虚拟化模块,实现存储设备内部的资源分配和管理;
3)基于网络的存储虚拟化:通过SAN 虚拟存储管理模块实现,虚拟存储模块逻辑上独立于存储和主机节点部署,能够支持异构主机、异构存储的场景,如Ceph。
4. 网络虚拟化的存在形态有多种,在云计算架构中,网络以资源的形式对外提供,和传统网络在层级仍然有一定的对应关系,并且网络资源和计算资源、存储资源共生以提供统一的对外服务。
1)网卡虚拟化,一般直接服务于虚拟机,提供虚拟的网卡资源,包括MAC地址、IP地址,其形态包括软件网卡虚拟化和物理网卡虚拟化。
软件网卡虚拟化通过软件控制各个虚拟机共享一个物理网卡,并通过虚拟交换机(如Linux原生Linux-bridge vlan的功能实现)实现和物理网络设备的互通,VLAN本身也是一种构建虚拟局域网的技术。
硬件网卡虚拟化主要依靠SR-IOV实现,将物理I/O设备分割成一系列的I/O物理端口的虚拟功能(Virtual Function,VF),并直接分配给虚拟机,避免了软件虚拟所带来的I/O开销和性能瓶颈。
2)网络设备虚拟化,目前主流实现形式为NFV和SDN。
NFV主要通过在通用硬件平台如x86上安装特定的操作系统或软件实现专用网络设备的功能。
SDN将网络分为控制层和数据层,需要部署专门的网络控制器软件以及相应的底层网络设备,网络的管理和抽象虚拟化由控制器软件完成,通过南向OpenFlow控制数据接口,将命令传递给底层设备,底层设备仅仅依靠命令转发数据包。在网络部署上可以灵活被调用以实现。
5. 云计算操作系统OpenStack的部署,主要是相应的服务组件的部署,相应的服务及组件可以部署在若干不同节点上。OpenStack实现的是对底层物理设备的及虚拟化技术的调度与封装,其服务和组件的部署需要与底层物理资源、虚拟化技术实现相集成,以便有效纳管底层或后端资源。
在集成部署环境中,可以将物理节点从功能上进行进一步的逻辑划分,包括控制节点,计算节点,存储节点和网络节点,各个节点上运用OpenStack的多种服务组件,形成专有的角色分类,在实际部署时根据需求灵活配置。OpenStack以及在其基础上二次开发的操作系统的集成部署,基本都遵循该逻辑划分。
OpenStack服务组件本身需要消耗一定的计算资源,通常以虚拟机或容器形态部署于物理服务器环境中,常见的实现形式有:
1)以物理机/虚拟机作为节点的部署颗粒,服务组件部署于物理机/虚拟机;
2)以物理机/虚拟机作为节点的部署颗粒,服务组件部署于容器;
节点的主要参考描述如下:
控制节点 | 控制节点运行OpenStack主要服务组件或其管理部分,还包括一些支持服务如SQL数据库、消息队列和网络时间协议NTP,负责对OpenStack、物理节点和虚拟资源的生命周期管理。 |
---|---|
计算节点 | 计算节点为创建计算实例提供所需的物理资源,可以提供CPU和内存,运行虚拟机软件或者容器引擎以创建计算实例;运行Nova-Compute/Zun-Compute服务,以接受控制节点的管理;还运行Neutron服务的agent,为计算实例提供网络支持。可以部署多个计算节点,集成环境下可对接提供大规模计算资源的底层同构/异构物理服务器集群 |
存储节点 | 为计算实例提供存储资源,需要运行对应的存储服务组件,以接受控制节点的管理。可以部署多个存储节点,集成环境下可对接大规模存储资源的后端同构/异构存储设备。 |
网络节点 | 为系统提供安全防护、路由转发和负载均衡等功能,需要运行neutron服务和网络插件,以接受控制节点的管理。集成环境可对接同构/异构网络设备。 |
通常情况下,存储节点和网络节点可以与其他节点部署在一起,在集成部署环境中对接相应的后端存储和支撑网络设备。