Oracle公有云实用指南
作者简介
内容简介
第5章Oracle R**ello云服务 Oracle公有云中包括三类计算云服务,第4章介绍的Oracle计算云服务属于传统计算基础设施(Oracle Compute Infrastructure Classic)服务,其余两个为OCI(Oracle Compute Infrastructure)计算云服务和R**ello云服务。 R**ello是一家以色列IT公司,由Rami Tamir和Benny Schnaider在2011年共同创立。在成立R**ello之前,两人共同创立的网络公司Pentacom于2000年被Cisco收购,之后又共同创立Qumranet公司,开发了**的开源虚拟化引擎KVM和桌面虚拟化解决方案SolidICE。2008年,Linux厂商Red Hat收购了Qumranet,之后Qumranet的KVM核心开发团队转而成立了R**ello。2016年2月,R**ello为Oracle收购并成为Oracle公有云的一部分。 5.1R**ello架构与概念 5.1.1嵌套虚拟化架构 服务器虚拟机技术起源于20世纪60年代,蓝色巨人IBM为大型机System/360开发出**套虚拟化*作系统CP67。1999年,VMware开发了运行于Linux或Windows系统上的VMware Workstation,这是一种工作站级别的寄居式虚拟化技术,主要用于开发测试。2001年,VMware推出了针对数据中心的虚拟化产品VMware ESX,此产品可大幅提高服务器的资源利用率,并极大简化了服务器的供应、迁移和管理。从此,虚拟化技术的使用越来越普遍,逐渐成为数据中心的主流技术,VMware也凭此成为私有云虚拟化技术的***。 从2006年***发布弹性计算云(Elastic Compute Cloud)开始,公有云以其无限容量、快速供应与弹性扩展等特点,得到了越来越多企业的认可。企业无须预先投资基础设施,只需订阅所需的公有云服务,即可快速开通基础设施、平台或软件服务,并只需按用量计费,这种创新的业务模式不仅降低了投资与运维成本,并且极大地推进了新产品和服务的上市速度。公有云不仅**适合于初创公司和中小企业,传统企业也逐渐考虑将一些之前运行在数据中心的业务迁移到云上,如开发测试系统、门户网站、客户关系管理系统等。 在企业从私有云向公有云迁移的过程中,也不可避免地出现了一些新的问题。**个问题是公有云的标准尚未形成,各云厂商采用的虚拟化技术不尽相同,导致迁移上云以及公有云之间的迁移**复杂。以虚拟化引擎为例,*** EC2使用Xen,Goo**e云基于KVM,VMware使用ESXi,Oracle则同时提供KVM和OVM两种虚拟化技术。不同的虚拟化引擎呈现给上层不同的虚拟硬件设备,如CPU、虚拟网络接口、虚拟控制器等。从虚拟化实现技术来看,VMware采用全虚拟化,***同时支持全虚拟化和半虚拟化,提供HVM和PV两种格式的机器映像。磁盘映像格式上,包括VMware的VMDK,KVM的QCOW和QCOW2,***的AMI,以及OVA、OVF和VHD等。 第二个问题是在上云的过程中,需要考虑迁移完整的应用架构,而不仅仅是孤立的虚拟机,包括应用的存储与网络配置,都应尽量与数据中心的配置保持一致,其中*关键的部分是网络。公有云与数据中心的网络并不相同,特别是二层网络存在较大差异。数据中心的主机可以**访问二层网络,主机之间发送和接收网络包没有任何过滤。而在公有云中,虽然也存在物理的二层网络,虚拟机的网卡也可以连接到虚拟二层网络,但虚拟机之间的网络包都或多或少经过了过滤,主流的云厂商AWS、Goo**e和Azure只允许单播(unicast)IP数据负载通过,而多播、广播及大部分非IP数据负载都被过滤掉。在数据中心的虚拟机热迁移和高可用方案中的虚拟IP都需要将ARP请求发送到广播地址,其他如IPX/SPX、WakeonLAN都属于非IP协议,这也意味着,如果应用使用了这些协议或功能,迁移到云上后将无法正常运行,或者需要做较大的调整和改变。 R**ello云服务设计的初衷正是为了解决这两个问题。首先,R**ello是一种嵌套虚拟化技术,构建在各公有云之上,为上层的客户机提供标准统一的虚拟硬件设备。其次,R**ello可以构建与数据中心**一致的存储与网络环境。这两点保证了应用可以整体在私有云与公有云,或不同公有云之间保持原样的迁移。 R**ello解决此问题的核心技术是分布式基础设施HVX,HVX使得包含多个虚拟机的应用可以整体封装,并保持原样地部署到主流公有云平台,包括Oracle、Goo**e和AWS。HVX包含三个核心技术组件,分别为嵌套虚拟化引擎、叠加网络和存储抽象层。通过R**ello管理层将三个组件融合在一起,提供用户界面、API、映像管理和监控,并打包成完整的SaaS服务提供给用户。 *基础的技术组件是嵌套虚拟机引擎。传统的虚拟化引擎如VMware ESX、KVM和Xen都运行在物理硬件上,并采用trap and emulate的方法仿真虚拟硬件提供给上层的虚拟机。这种方式需要结合硬件提供的虚拟化扩展支持,例如Intel VTx或AMDSVM,普通用户层的指令由虚拟机直接执行,一些底层的指令则由处理器捕捉并移交到虚拟层以*安全的方式执行,然后再将控制权返还虚拟机。但由于R**ello运行在公有云提供的虚拟机中,而公有云厂商通常不会将硬件提供的虚拟化扩展开放给上层的虚拟机,因此R**ello采用了二进制转换(Binary Translation)的方式来实现虚拟化引擎。二进制转换方式*早用于20世纪90年代的DEC VAX系统,VAX程序的指令被翻译为对等的Alpha处理器指令执行,这种方式无须硬件的虚拟化扩展支持。如图51所示,这种方式也称为纯软件方式,是R**ello*初采用的虚拟化引擎实现方式。这种方式下存在两层虚拟化引擎,即公有云厂商的虚拟化引擎和HVX虚拟化引擎,这也是R**ello嵌套虚拟化名称的由来,此外,在R**ello虚拟化引擎之上还可以再嵌套一层虚拟化引擎,如ESXi和KVM,并可以通过一些优化来降低性能开销,从而使R**ello的使用场景*加广泛。 图51R**ello嵌套虚拟化模式 2016年R**ello被Oracle收购后,R**ello支持的公有云除Goo**e和AWS外又新增了Oracle公有云。在Oracle公有云中,底层硬件的虚拟化扩展可以开放给上层的HVX虚拟化引擎,因此R**ello可以将一些指令下放到CPU执行,从而获得性能上的极大提升。这种方式即图51中的硬件辅助模式,与纯软件模式一样,仍然存在两层虚拟化引擎。第三种方式是将HVX直接运行在物理硬件上,即图51中的裸机模式,由于去除了一层虚拟化引擎,因此HVX可以提供*高的性能。 HVX中的第二个核心技术是叠加网络(Overlay Network),这也是R**ello区别于其他云服务的一个**重要的特征,如图52所示。在公有云领域,不同的云服务供应商提供不同的网络架构并且互不兼容; 另外,云中的网络与传统数据中心的网络存在很大的区别,在数据中心常用的L2层访问,如VLAN、端口映射、广播、组播等在公有云中通常不被支持。例如,需要复制多个测试或培训环境时,每一个新环境中的虚拟机都需要保持原有的IP地址和主机名,并且这些环境相互不能干扰,在数据中心中可以用SDN(软件定义网络)技术实现。SDN是一种网络虚拟化技术,可以将逻辑网络拓扑与物理网络设施分离,例如VXLAN协议可以在三层网络基础设施上构建叠加的二层网络。由于VXLAN需要依赖组播(multicast)来发现参与到子网中的节点,而组播需要在交换机或路由器上定义,在公有云中通常不开放此类*作,因此R**ello实现了自己的网络层: 叠加网络。 图52支持二层协议的HVX叠加网络 叠加网络是HVX实例的一部分,目的是为虚拟机创建安全、可自定义的二层网络,叠加网络运行在云服务商的三层网络之上并可跨多个公有云运行。叠加网络中可包括多个子网、交换机和路由器,并提供DNS和DHCP服务,所有这些网络设备都是逻辑的,并由叠加网络统一实现。叠加网络中的核心组件是虚拟交换机,虚拟交换机通过配置文件自动发现逻辑子网中的其他节点,并在节点间建立P2P GRE链路,随后即可利用此链路作为隧道来传输封装的二层以太网数据包。虚拟交换机同时也实现了路由功能以在不同的子网间传递数据。与物理网络实现方式不同,HVX采用分布式路由方式。每一个HVX中的虚拟路由具有相同的MAC地址,当一个虚拟机需要与另一子网中的虚拟机通信时,首先会发送ARP请求以发现虚拟路由的MAC地址,虚拟路由接收到数据包后,会在自身的转发表中查询目标虚拟机。如果没有找到,ARP请求会被广播到目标子网中所有节点,目标虚拟机将响应此ARP请求并通过隧道将数据回传给源节点。路由转发表形成后,两个虚拟机间即可通过单播直接通信。 与网络类似,不同云厂商实现存储的机制也存在差异。HVX通过存储抽象层平抑了各云厂商存储实现的差异,并为虚拟机提供了统一接口来访问底层的存储服务。HVX提供的存储服务包括映像存储服务和虚拟机使用的虚拟化存储。映像存储指只读的虚拟机映像或磁盘映像,底层依赖于对象存储、NFS或本地块存储实现。由于映像文件容量较大,并且可能有多个虚拟机同时读取这些文件,为提升性能和减少数据传输,所需的映像被下载到本地,虚拟机启动时会创建各自的本地快照,这些快照可以修改,并可以回存到映像存储。为减少存储占用空间以及上传/下载时间,映像文件被分割为多段并以元数据描述,如果某一段的数据全部为空,这一区段将只在元数据中记录,并不会真正占用存储空间,在上传和下载时这些数据也不会被实际传输。此外,通过压缩和重复数据删除也可以实现进一步的存储优化。 类似于存储虚拟化,存储抽象层将来自不同云服务商、采用不同技术的存储汇集成统一的资源池。HVX存储抽象层通过RAID 0技术形成容量*大、性能*佳的逻辑卷,并以本地块存储的形式提供给虚拟机使用。此外,HVX还提供虚拟光驱服务,虚拟机可将资料库中的*作系统映像加载到虚拟光驱,实现在云中从零开始安装*作系统的独特功能。 全面深入介绍Oracle公有云技术。 关注热点,偏重云端技术与数据中心技术的结合。 偏重实践,提供丰富和简明的架构图,每一个重要概念都配备详细的示例,用户可以使用随书提供的脚本和源代码进行实际*作,以加深对概念的理解。