资讯专栏INFORMATION COLUMN

剖析开源云和基础架构技术

MoAir / 1278人阅读

摘要:云计算剖析本文将从云架构的核心抽象开始讨论从基础架构即服务,然后是构建块,最后是高度集成的解决方案。核心开源技术领域经历着以虚拟化管理和大规模云软件包集成的虚拟基础架构为中心的开发浪潮。

对分布式系统也就是 Internet 使用云作为一种抽象是十分普遍的,但在过去的几年中,这个抽象已经扩展,并入了高度虚拟化的可伸缩基础架构,这些基础架构可以很容易地被作为一个(本地的或远程的,或者本地和远程资源的组合)服务提供。本文将不对云架构的定义及其优点做深入的介绍,供您参考阅读。

云计算剖析

本文将从云架构的核心抽象开始讨论(从基础架构即服务 [IaaS]),然后是构建块,最后是高度集成的解决方案。

尽管不是必需的,但虚拟化为构建可动态伸缩的架构提供了一些独特的优势。除资源共享和可伸缩性外,为了负载均衡,虚拟化还能够在物理服务器间迁移虚拟机 (VM)。图 1 中所示的这个虚拟化组件是由一个名为虚拟管理程序(有时也叫作虚拟机监视器 [VMM])的软件层提供的。这个层提供了同时在一个单一物理机器上执行多个操作系统(及其应用程序)的能力。每个操作系统被视为一个逻辑机器并由虚拟管理程序映射到物理机器。在这个虚拟管理程序上有一个名为 virtual machine 的对象,这个对象封装了操作系统、应用程序及配置。另外,如果需要,还可以在这个虚拟管理程序中提供设备仿真或是作为一个 VM 提供设备仿真。最后,考虑到虚拟化的新动态特性及它所提供的新功能,还会需要新的管理模式。这种管理较好在各层内完成,本地管理在服务器上完成,还有更高级别的基础架构管理,以便提供虚拟环境的全面协调管理。

图 1. 云中一个节点的核心元素

该架构图显示了核心云元素的层视图

如果将 图 1 中的那些节点在一个具有共享存储的物理网络上繁殖它们,在整个基础架构上编排管理,然后用缓存和过滤提供入向连接(无论是私有的还是公共的设置)的前端负载均衡,那么您就有了一个可以叫作云 的虑拟基础架构了。图 2 显示了这个新结构。有了根据其各自的负载实现的跨节点 VM 均衡(甚至是动态均衡的),睡眠状态的服务器可以关掉,除非还需要额外的计算能力(以提供更好的电源效率)。

图 2. 云计算基础架构
 

该图显示了云交互的各层,包括物理网络/存储和用户/Internet

定义了云的基本架构后,就可以开始探究如何应用开源技术来构建一个动态的云基础架构了。

 

核心开源技术

Linux 领域经历着以虚拟化、管理和大规模云软件包集成的虚拟基础架构为中心的开发浪潮。在这里,我们先来看一下在单个节点级别上的开源,然后再研究此基础架构。

虚拟管理程序

虚拟管理程序是云在节点级别的基础。尽管虚拟化不是必需的,但它在提供可伸缩的和功耗合理的架构方面的能力是勿庸置疑的。目前有很多开源虚拟化解决方案,其中有两个解决方案很关键,它们可以将 Linux 操作系统转化为虚拟管理程序,这两个解决方案分别为 Linux Kernel Virtual Machine (KVM) 和 Lguest。KVM 是虚拟管理程序的正式解决方案,被部署到生产环境中。Lguest 是一个只能运行 Linux VM 的以 Linux 为中心的解决方案,但将它集成到内核就可以得到更广泛的应用。由于其性能优势,Xen 虚拟管理程序也被广泛用于公共和私有 IaaS 解决方案中。

除了将 Linux 转换为虚拟管理程序外,还有其他一些以 guest VM 为中心的解决方案。User-Mode Linux (UML) 则是另一种方式,它能修改 guest Linux 内核使其运行在另一个 Linux 操作系统上(无虚拟管理程序扩展)。因为许多用户都希望运行一个未被修改的内核,所以完整的虚拟化解决方案(比如 KVM)更受欢迎。

UML 方法也很受欢迎,但它需要虚拟硬件(比如控制台、虚拟硬盘和网络)。

设备仿真

虚拟管理程序提供了与多个操作系统共享 CPU 的途径(CPU 虚拟化),但是为了提供完整的虚拟化,整个环境都必须针对这些 VM 进行虚拟化。机器(或平台)仿真可以以几种方式实现,其中有一种流行的开源包可支持许多虚拟管理程序,被称作 QEMU。QEMU 是一个完全的仿真器和虚拟管理程序。但是 KVM 只将 QEMU 用于设备仿真,作为用户空间内的一个多带带过程(参见 图 1)。QEMU 的一个有趣特性是因它提供了磁盘仿真(通过 QCOW 格式),QEMU 还提供了其他一些高级特性,比如快照和实时 VM 迁移。

自内核 2.6.25 后,KVM 使用 virtio 作为一种优化 I/O 虚拟化性能的手段。为此,它将准虚拟化了的 (paravirtualized) 驱动程序引入到虚拟管理程序,进而将性能提高到了接近原生的级别。虽然这只有在操作系统可针对此目的修改时才有效,但是它还是可以用在 Linux 虚拟管理程序场景中的 Linux guest 内。

如今,virtio 和 QEMU 可协同工作以便在用户空间内的 Linux guest 和 QEMU 仿真器之间优化仿真设备事务。

虚拟网络

由于 VM 合并到了物理服务器上,因此对平台的联网需求十分迫切。但我们不需要把所有 VM 的联网都强加到这个平台的物理层上,本地通信可自行被虚拟化。为了优化 VM 间的网络通信,引入了虚拟交换。vSwitch 和物理交换一样,只是被虚拟化进了这个平台(参见 图 3)。在这个图中,与 VM 相连的虚拟接口 (VIF) 通过虚拟交换与物理接口 (PIF) 进行通信。

图 3. 具有虚拟和物理接口的 Open vSwitch 高级视图
 

此图显示底部是物理域层,然后是物理接口、虚拟接口以及顶部的 VM

开源也可以解决这个问题,借助的是一个很有趣的解决方案,称为 Open vSwitch。除了为虚拟环境提供虚拟交换外,vSwitch 还能集成物理平台及提供企业级特性,比如虚拟本地局域网络 (VLAN)、基于优先级 Quality of Service (QoS)、中继和对硬件加速的支持(比如单根 I/O 虚拟化 [IOV] 网络适配器)。Open vSwitch 现在可用的是 2.6.15 内核,并支持一系列基于 Linux 的虚拟化解决方案 (Xen、KVM 和 VirtualBox)和管理标准(Remote Switched Port Analyzer [RSPAN] 和 NetFlow 等)。

VM 工具和技术

由于 VM 是操作系统、根文件系统和配置的聚合,因此空间已经很成熟,完全适于工具开发。但是为了充分发挥 VM 和工具的潜力,必须有一种方式来组合它们。目前的这种方式称为 Open Virtualization Format (OVF),它是一种 VM 结构,灵活、高效且可移植。OVF 在一个 XML 包装程序内包含了一个虚拟磁盘映像,这个包装程序定义了该 VM 的配置,包括网络配置、处理器和内存要求以及多种可扩展的元数据来进一步定义此映像及其平台要求。OVF 提供的关键功能是可移植性,可以以一种虚拟管理程序不可知的方式分发 VM。

目前,有很多实用工具可用来管理 VM 映像 (VMI) 以及将这些映像转变为其他格式,或从其他格式转变回来。VMware 的 ovftool 就是这样一种很有用的工具,可用于 VMI 转化(比如,从 VMware Virtual Disk Development Kit [VMDK] 格式转变为 OVF)。对于 VMI,这些工具显得非常有用,但是如果有一个物理服务器,要将它转变为 VMI,该如何做呢?对此,您可以使用一个很有用的工具,称为 Clonezilla。虽然该工具最早是作为灾难恢复的磁盘克隆工具开发的,但它可以被用来将一个物理服务器实例转化成一个 VM,以便于部署在一个虚拟基础架构内。随着 OVF 格式的大量采用,有很多其他的转换和管理工具或者已经存在(比如构建于 libvirt 之上的实用工具)或正在开发之中。

本地管理

本文从两个角度探索了管理。本节讨论平台管理;稍后的一个章节会谈及较高级别的基础架构管理。

Red Hat 引入了 libvirt 库作为管理平台虚拟化(虚拟管理程序和 VM)的一个 API。libvirt 的一个吸引人之处是它支持多种虚拟管理程序解决方案(KVM 和 Xen 就是其中两个)并提供对多种语言(比如 C、Python 和 Ruby)的 API 绑定。它提供的是管理的 “最后阶段”,直接与平台虚拟管理程序交互并将 API 扩展到更大的基础架构管理解决方案。借助 libvirt,启动和停止 VM 非常简单,而且它还为更先进的操作(比如在平台间迁移 VM)提供了 API。使用 libvirt 还能使用它的 shell(构建于 libvirt 之上),称为 virsh。

12下一页

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/3661.html

相关文章

  • LinuxCon+ContainerCon+CloudOpen首次来华,国际开源盛会不容错过!

    摘要:月日,国家会议中心,由主办的合称将强势登陆北京这是首次来华,在这场三合一的开源技术盛会中,来自国内外的开发人员架构师系统管理员专家商业领袖等数千名专业人士将汇聚一堂。后被收购,梁胜出任云平台首席技术官,也成为首位华人。 6月19-20日,国家会议中心,由The Linux Foundation主办的LinuxCon + ContainerCon + CloudOpen (合称LC3) ...

    Corwien 评论0 收藏0
  • 云计算和大数据:成功组合指南

    摘要:云和大数据也不例外。最终观点基于以上考虑建立一套固有的基础架构,你将会看到大数据和云之间是一种天作之合的组合。 在2013年三月音乐电影艺术节上,Motley Fool的Tim Byers说过:在很多方面,云和大数据越来越密不可分且功能相似-云资源用来支撑大数据的存储及项目,而且大数据相对于云来说是一个庞大的业务案例。大数据和云技术的最终联姻,必定是天作之合。     听起来虽然浪漫,但我们...

    XBaron 评论0 收藏0
  • 取之开源,用之开源——深度剖析阿里巴巴对Apache Flink的优化与改进

    摘要:基于在阿里巴巴搭建的平台于年正式上线,并从阿里巴巴的搜索和推荐这两大场景开始实现。在经过一番调研之后,阿里巴巴实时计算认为是一个非常适合的选择。接下来,我们聊聊阿里巴巴在层对又大刀阔斧地进行了哪些改进。 Apache Flink 概述 Apache Flink(以下简称Flink)是诞生于欧洲的一个大数据研究项目,原名StratoSphere。该项目是柏林工业大学的一个研究性项目,早期...

    YJNldm 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<