Version 2.2 – May 2021

摘要

为了支持数字化转型计划,IT部门需要正确地融合本地、公共和边缘云环境,以支持各种现有和新兴用例,同时避免供应商锁定和实现成本优化。他们还需要在共享环境中将容器与Virtual Machine工作负载结合起来,以便从成熟的虚拟化技术和安全的容器编排中获得最大的好处。本文档为OpenNebula提供了一个强大的分布式边缘云架构,它由边缘集群组成,可以在任何裸金属资源上运行任何工作负载,包括虚拟机和应用程序容器,也可以在任何本地和云提供商上的任何地方运行虚拟化资源。我们的边缘云架构通过将公共和私有云操作与工作负载可移植性以及IT基础设施和应用程序的统一管理相结合,实现了真正的混合和多云计算。
我们将这个体系结构定义得比传统的云计算体系结构简单得多,传统的云计算体系结构通常由用于存储和网络的复杂、专有的通用软件系统组成。该体系结构是根据过去十年中数百名用户和客户参与的集体信息和经验创建的。它基于Linux操作系统中已经存在的存储和网络技术,以及现有云和边缘提供商提供的现代存储硬件,从而大大简化了设计。我们的边缘云架构通过非常简单的设计实现了企业级的性能、可用性和可伸缩性云特性,避免了供应商锁定,降低了复杂性、资源消耗和运营成本。

1、什么是OpenNebula?
OpenNebula是一个功能强大但易于使用的开源解决方案,用于构建和管理企业云。它将虚拟化和容器技术与多租户、自动供应和弹性相结合,以提供随需应变的应用程序和服务。OpenNebula提供了一个单一、功能丰富、灵活的平台,对IT基础设施和应用程序进行统一管理,避免了厂商锁定,降低了复杂性、资源消耗和运营成本。OpenNebula管理:

任何应用程序:将容器与虚拟机工作负载组合在一个公共共享环境中,以提供两方面的最佳服务:成熟的虚拟化技术和应用程序容器的编排。
任何基础设施:通过结合边缘云、公共云、托管云和私有云运营,释放真正混合和多云平台的力量。
任何虚拟化:集成多种类型的虚拟化技术,以满足您的工作负载需求,从完全虚拟化环境到系统容器和无服务器部署。

OpenNebula提供了必要的工具来运行来自Kubernetes和Docker Hub的容器化应用程序,同时确保您的DevOps实践符合企业需求。
它帮助组织轻松地采用多云计算、混合计算和边缘计算,允许他们利用第三方公共云和AWS和Equinix Metal等裸金属提供商提供的基础设施资源,按需发展企业云。OpenNebula支持多种虚拟化技术,包括用于完全虚拟化云的VMware和KVM虚拟机,用于容器云的LXC系统容器,以及用于无服务器部署的爆竹microVMs。

本白皮书描述了OpeNebula的边缘云架构,它由边缘集群组成,可以在任何裸金属资源或虚拟化资源上运行任何工作负载(包括虚拟机和应用程序容器),也可以在任何地方或云/边缘提供商上运行。
如果您想了解更多关于边缘计算的创新方法,请参阅我们的白皮书《如何使用OpenNebula.1加速边缘云计算》如果您对在VMware vCenter之上设计和部署OpenNebula云感兴趣,请参考我们的VMware云参考架构。请参考我们的开放云参考架构。

OpenNebula的开发遵循了一种由系统管理员、DevOps和企业用户的实际需求驱动的自底向上的方法。OpenNebula是一个开源产品,拥有健康和活跃的社区,并通过OpenNebula系统的OpenNebula订阅获得商业支持。发布版本是定期生成的,并作为一个带有平滑迁移路径的单个包交付。更多关于运行OpenNebula云的好处的信息可以在关键特性页面上找到。

2、分布式边缘云的设计原则
IT部门和运营团队的压力正以很高的速度增长。期望他们:

● 创新,使新的应用程序和服务更快地进入市场。
● 要灵活地满足开发人员对新开发工具和框架(如容器或基础设施代码(IaC))日益增长的需求,同时继续向应用程序管理员提供基础设施,并确保企业对DevOps实践的需求。
● 适应新的现实,混合云和多云正在快速增长,边缘计算是下一个IT转型。

从与数百名用户和客户合作的经验来看,我们已经定义了一个边缘云架构,它构建了一个分布式云平台来运行任何工作负载(从虚拟化到容器化)——跨越可以在任何地方运行的多个集群(可以在任何地方运行)——以及任何资源(从裸金属到虚拟)——具有无与伦比的可用性、性能和简单性。

该体系结构定义了一个完整的端到端解决方案,基于Linux操作系统中已经存在的经过验证的开源存储和网络技术,以避免厂商锁定;最小化IT复杂性、资源消耗和运营成本;最大化性能、可用性和可靠性;并简化其部署和管理的自动化。
● 该架构实现了一个分布式的方法,通过一个云前端控制一个或几个相互连接的边缘集群,可以运行在多个地理分布的数据中心位置,以及云和边缘资源提供商。
● 可以动态添加和删除集群,以满足需求高峰,或实现容错策略或延迟需求。
● Edge集群基于一个通用的参考架构,该架构被设计为可以部署在任何资源上,从裸金属到虚拟,从而实现工作负载的可移植性。
● Edge Cluster的内部设计遵循一种超融合的方法,在每个环境中使用最优的基础设施配置,以确保隔离和性能,轻松地扩展和扩展节点,以匹配计算和存储需求,并迁移工作负载。
● 边缘架构实现了真正的混合和多云计算,并利用云、边缘和接入网络云提供商不断增长的生态系统。
● Edge集群能够在没有网络连接的情况下自主运行,允许在本地数据中心运行的应用程序在没有任何管理服务的情况下继续运行。
● 系统支持现代应用程序,在单一平台上结合应用程序容器和虚拟机,并与现有的虚拟机和容器映像集枢纽和市场集成。虽然基于容器、微服务和功能(无服务器)的新工作负载通常应该是无状态和短暂的,但几乎所有业务应用程序都需要某种形式的数据持久性。这就是边缘云架构为非持久和持久vm以及容器化应用程序提供支持的原因。

最后,它产生了单一的供应商体验,因为OpenNebula系统完全支持并可选地管理完整的云堆栈。这意味着简化了采购、咨询和支持的体验。您可以加速和简化单一供应商的路线图开发、迁移和升级路径。

3、高层参考体系结构
现代云环境已经演变成高度复杂的后端,这限制了它们的可靠性并阻碍了它们的可操作性。它们是由专有的、昂贵的用于存储和网络的通用软件系统组成的,这些系统不必要地复杂,因为它们被设计为一次性解决太多问题。OpenNebula Edge云架构背离了这一趋势,它使用了轻量级系统和软件组件,硬件要求适中,易于修复和操作,同时还提供了最大的应用程序性能,通过实现专门用于管理分布式多站点环境中的虚拟化应用程序的创新设计。

OpenNebula的边缘云架构是围绕边缘簇的概念而设计的。边缘集群是一组超融合的管理对象功能集,包括存储、网络和主机资源。一个边缘集群提供了运行虚拟化或容器化应用程序所需的所有资源。OpenNebula的管理服务,包括调度、监控和生命周期管理,运行在云中,前端和协调边缘集群。前端还提供对管理工具、用户界面和API的访问。虽然根据集群的数量、大小和API负载的不同,需求可能会有所不同,但前端节点只需要8gb的主存和4个核。体系结构的基本构建块,包括边缘集群,如图1所示。

云mes架构 云架构体系_虚拟化


图1: 边缘云架构的主要组件

边缘集群建立在虚拟化主机和互联网络上。虚拟化主机负责通过适当的虚拟化形式为应用程序提供执行资源(例如CPU、内存或网络访问),例如虚拟机(KVM)、系统容器(LXC)或微型虚拟机(鞭炮/KVM)。实际的虚拟化技术取决于集群主机的配置方式(参见第4节)和工作负载的概要文件。此外,主机为集群提供运行应用程序所需的存储空间。

集群主机的配置在安装的软件组件、OpenNebula管理用户和可访问存储方面是相同的。前端节点需要连接到集群主机,以接收状态和监控更新,并发起管理操作。集群节点通过一个或多个私有网络相互连接,这些网络通常用于存储传输以及跨虚拟化主机的应用程序通信。最后,需要访问公共链接以提供具有internet连接的应用程序。

Edge Cloud Architecture能够为中型集群提供轻量级且易于使用的存储平台,这些集群由数十个节点组成,可以在本地和云上运行,也可以在物理和虚拟化资源上运行。总的来说,OpenNebula的边缘云架构能够管理数百个这样的集群,因为它们在网络和存储方面自主运行,并处理数千个虚拟化主机和数万个虚拟化应用程序。

4、边缘集群部署模型
OpenNebula Edge云架构的主要优势是能够在任何地方部署集群。这在字面上提供了应用程序移动性和真正的多云计算。集群可以部署在本地基础设施、公共裸金属提供商和虚拟化云环境中,以启用强大的混合云和多云计算。基础设施团队可以灵活地选择他们喜欢的硬件平台和云提供商,并提供出色的OpenNebula体验。

特别是集群可以以三种不同的形式提供:

● On-premises假定资源具有完整的管理能力,并且在网络方面没有任何限制。通常,这种类型的供应使用内部数据中心资源。
● 金属远程对IP地址和资源的连通性提出了一些限制。金属供应通常需要与云/边缘提供商API交互,并使用裸金属实例。
● 虚拟远程限制了集群主机的能力以及网络连接。虚拟远程集群部署通常基于来自云或边缘提供者的virtual Machine实例。

请注意,一些集群部署或一些云提供商可能会对集群中可用的功能施加一些限制(例如,支持的管理程序或主机连接)。如图1所示,单个前端可以同时从多个位置管理集群。虽然集群架构已经在主要的云提供商上进行了测试,但自动供应功能只支持Equinix Metal和AWS。OpenNebula正在为其他广泛使用的云和边缘提供商开发驱动程序。

5、存储体系结构
我们的边缘云架构基于OneStor,这是一种专门的存储解决方案——完全由OpenNebula系统支持——它是为在高度分布式环境中高效管理磁盘映像而开发的。

● 访问作为全局图像存储库的外部(公共)市场。例如OpenNebula Marketplace或Docker Hub,还有私有HTTP存储库或容器注册表。
● 最小化映像传输,最大化应用程序I/O性能。集群可以在公共互联网连接上使用云/边缘部署模型。此外,本地供应可以扩展到大量主机。存储不应该成为这些情况的瓶颈。
● 简单的部署。通过使用Linux操作系统中已经存在的技术来适应物理和虚拟资源上的任何部署模型,以及增加后端可靠性,从而减少解决方案的复杂性和技术占用。

边缘云架构结合了用于映像分发的3层全局架构和增强的文件系统数据存储,在每个边缘集群中具有副本缓存、快照和备份。3层存储体系结构(见图2)包括:

● 第1层由远程服务器和实现全局应用程序映像存储库的存储组成。它包括第三方网站,如Docker Hub或Linux Containers,以及OpenNebula公共市场。

● 第2层-图像数据存储。该层由区域映像数据存储组成,并提供OpenNebula区域的主映像存储位置。这个存储区域是为一个或多个专用节点提供的。它的内容被缓存并按需复制到每个集群。这支持任何位置的边缘集群部署,以及扩展本地基础设施。

● 第3层 - 集群复制。应用程序映像缓存在专用的复制主机集群中,以减少映像传输。复制主机利用专门的分发系统使所有集群主机都可以使用映像,并支持主机故障恢复的快照。

云mes架构 云架构体系_虚拟化_02


图2:边缘云架构的三层存储系统

在每个第3层集群中,磁盘映像通过一种增强的SSH传输方式在Image和System数据存储之间传输,这种方式带有副本缓存和快照,极大地提高了其可伸缩性、性能和可靠性。新的复制模式将映像缓存到每个集群中,这样它们就可以在管理程序附近使用,从而减少对第2层映像数据存储服务器的带宽需求,并显著减少部署时间。这在高度分布式的边缘部署中尤其重要,因为将映像从第2层前端复制到第3层集群管理程序可能非常缓慢。

边缘存储架构是通过轻量级技术组件实现的,这些组件转换成适度的硬件要求,如SATA ssd和10gb网络。此外,它的部署遵循超融合的方法,不需要专用服务器来实现分布式存储系统。这降低了解决方案的复杂性,使云集群主机可以使用本地存储区域。

应用程序部署的性能

应用程序映像基于qcow2格式的文件,以最小的开销减少文件传输和实例化时间。使用qcow2文件备份磁盘映像还简化了备份解决方案,减少了映像传输时间,并以一种有效的方式实现了快照等高级特性。预期的部署时间取决于层之间的互连链路和磁盘大小。作为参考,对于法兰克福的裸金属远程集群(第3层),使用公共互联网链接连接到位于阿姆斯特丹的第2层Image数据存储,我们获得了使用0.5 GiB的qcow2磁盘的应用程序的平均部署时间5s(热缓存)和35s(首次部署,空缓存)。图3描述了上述集群(包含缓存映像和不包含缓存映像)的平均部署时间。当集群使用1Gb/s链路部署时,部署时间一般为5s。

云mes架构 云架构体系_虚拟化_03


图3. 与不具有缓存映像的部署时间的比较。应用程序的I/O性能

应用从主机直接连接的存储上运行,以最大限度地提高应用的可用I/O性能。I/O性能接近本机主机,仅受虚拟化层的影响。为了提供这个开销的估计,我们在主机和VM上都运行了Flexible I/O测试器。已经在t1上采取了措施。Equinix metal上的一个小金属实例和一个运行在同一台服务器上的VM。表1总结了这两种机器的特性。

云mes架构 云架构体系_云mes架构_04


表2显示了在为顺序和随机的读和写操作运行基准时获得的平均带宽。物理主机与虚拟机性能基本相同,差异不超过5%。注意,虚拟页面缓存隐藏了一些延迟。

云mes架构 云架构体系_虚拟化_05

应用程序快照性能
为了提高边缘集群块的可用性,在同一个集群中支持热迁移。应用程序快照也保存在边缘集群(第3层)中,以启用从最后一个应用程序检查点的快速恢复。

恢复操作可能会影响两个不同的方面:

● 快照操作产生的I/O噪声可能会减少相邻应用程序的I/O。在我们的例子中,这个成本可以忽略不计,因为它基于QEMU写时重定向特性。
● 将恢复快照移动到集群复制服务器的网络带宽。在这种情况下,我们使用增量传输算法来减少传输到服务器的信息。然而,这个时间会随着磁盘的内容偏离原来的内容而增加。

另一个需要考虑的重要方面是VM恢复时间。与恢复没有任何快照的VM相比,恢复时间是相似的,因为基本映像已经位于集群副本(第3层)上,唯一的额外开销是磁盘快照的传输,磁盘快照也已经在边缘集群中可用。

备用存储后端
OpenNebula支持最流行的企业级SDS(软件定义存储)后端,如Ceph或Gluster,旨在提供高可伸缩性和可用性。尽管这些平台具有高性能和丰富的特性,但运行这些平台需要丰富的经验、更高的财务投资、专用的硬件(无论它们是否是超融合的)和大量的资源。一般来说,它们的成本、复杂性和资源需求阻碍了它们在边缘集群中的实际应用。

6、网络体系结构
集群使用四种类型的网络:
● 存储网络专用于分发系统的应用程序镜像。
● 专网实现应用互联网络。
● 管理网络,用于主机接入前端业务。
● 将应用程序与因特网互连的公共网络。通常需要在边缘集群中预定义一组可用的公网ip。

注意,当集群远程部署时,管理流量可以通过公网路由。

每个网络的特征强烈地依赖于用于集群的部署模型。on-premises模型提供完整的网络功能,并基于标准linux桥接。专用应用网络是通过VLAN标记(802.1Q)实现的。

另一方面,云集群或Edge集群可能会对每种网络类型的拓扑提供一些限制,这取决于所选的提供商。通常,OpenNebula网络堆栈使用特定的提供商驱动程序向应用程序和私有网络注册弹性公共ip。

在这两种情况下,应用程序都受益于OpenNebula网络内核实现的特性,包括安全组、自动网络调度和用户自配置模型。

云mes架构 云架构体系_应用程序_06


图3.概述边缘云架构中使用的网络.

7、高可用性
可用性是云架构设计的一个关键方面,尤其是在涉及应用程序数据恢复和完整性时。

● 前端:OpenNebula使用基于Raft的分布式共识协议,提供跨OpenNebula前端服务的容错和状态一致性。至少需要部署3个前端,才能支持1个节点故障。当前端在云资源上运行时,前端HA集群可以跨国家甚至大洲部署。

● 多集群:边缘云架构通过允许应用程序跨多个集群,帮助您自动部署地理分布的云和边缘环境,这些环境支持多云可用性模式。通过这种方法,您可以使应用程序比传统的单一数据中心基础设施具有更高的可用性、可伸缩性和容错性。
集群:OpenNebula实现了远程集群的自治操作,在云上运行的集群和边缘位置可能失去与集中式中心的连接的情况下。在集群中运行的应用程序可以在没有任何管理服务的情况下继续其操作。

● 主机:边缘集群中的三层副本存储架构实现了基于定时快照的可用性系统,通过fencing节点防止脑裂(软的,由于本地I/O),并自动重新启动另一个节点中的应用程序,用于从虚拟机和主机故障中恢复。应用程序快照保存在集群(tier 3)中,以启用从最后一个应用程序检查点的快速恢复。可用性可以通过HW复制(HD Raid和NIC)和网络路径在每个节点内提高,也可以通过跨多个集群实现应用程序级HA(当需要数据和应用程序状态完整性时)在应用程序内提高。

● 应用:Edge集群的网络架构和OpenNebula编排功能允许开发人员在需要数据和应用状态完整性的地方使用应用特定的复制机制。此外,由于支持集群主机中的应用程序动态迁移,可以在系统运行时执行维护工作,并且可以减少主机故障。

8、自动提供边缘簇
OpenNebula提供了所需的配置工具和方法,可以随需动态地发展一个私有云基础设施,其资源运行在远程云和边缘提供商上。这种分解云的方法允许从集中式私有云无缝过渡到分布式类边缘云环境。公司能够利用云和边缘数据中心位置的资源来发展他们的私有云,以满足需求高峰或工作负载的延迟和带宽需求。这种方法涉及一个单一的管理层,在这个管理层中,组织可以继续使用现有的OpenNebula映像和模板,保持对基础设施的完全控制,并避免供应商锁定。

OneProvision7工具允许在远程提供程序中部署完全可运行的边缘集群,并管理其整个生命周期,从其供应和维护开始,直到未供应为止。每个云或边缘位置(“供应”)被定义为一组从远程裸金属或虚拟提供商分配的物理主机。它们完全配置了用户选择的管理程序,并在云堆栈中为最终用户启用。

9、在任何地方运行任何应用程序
OpenNebula云的关键部分之一是支持现代应用程序、在单一平台上组合应用程序容器和虚拟机,以及与现有虚拟机和容器映像中心和市场集成的能力。

OpenNebula拥有对其自己的市场的固有访问权,该市场允许用户从公共存储库(包含经过OpenNebula Systems测试和认证的常用图像)或私人存储库导入图像。可以将这些映像添加到数据存储中,并由现有的VM模板或实例随时使用。

云mes架构 云架构体系_基础设施_07


图5. OpenNebula公共市场提供的一些虚拟设备.OpenNebula用户可以轻松地从其他公共市场下载、上下文化和添加虚拟设备,包括Linux Containers8和TurnKey Linux。

云mes架构 云架构体系_基础设施_08


图6. Linux Containers(左)和TurnKey Linux(右)提供的一些图片.应用程序开发现在越来越依赖于微服务体系结构,这避免了在修改或添加特定功能到应用程序时破坏整个堆栈。这种开发趋势与这些应用程序的部署方式紧密耦合,通常是通过应用程序容器。从版本5.12“Firework”开始,OpenNebula还与Docker Hub无缝集成,10允许在OpenNebula开放云中的任何管理程序上直接执行Docker Hub映像。这是应用程序的开发和分发模型,特别适合于边缘环境,因为只有少数遗留应用程序将部署在边缘,而新的应用程序很可能使用这些现代模型开发。

云mes架构 云架构体系_云mes架构_09


图7. OpenNebula与Docker Hub市场的原生集成

10、准备好测试了吗?
您可以在几分钟内使用miniONE,11我们的部署工具来快速安装OpenNebula前端到虚拟机或物理主机中,然后您可以使用它轻松添加基于KVM, LXC或fireacker的远程边缘集群。
miniONE

11、结论 很明显,现代云的发展导致了高度复杂系统的创建,这些系统通常基于专有技术。本文档概述了OpenNebula的简单性选择和开源备选方案,并介绍了由边缘集群组成的强大边缘云架构。它们是使用Linux操作系统中已经存在的存储和网络技术按需构建的,可以运行任何工作负载——虚拟机和应用程序容器——在任何裸金属资源或任何地方的虚拟资源上、在云上或在边缘上。我们的边缘云架构通过将公共和私有云操作与工作负载可移植性以及IT基础设施和应用程序的统一管理相结合,实现了真正的混合和多云计算。