基于OpenStack 和Ceph 搭建私有云的方案

2021-02-24 13:26孙苏伟
信息记录材料 2021年1期
关键词:网卡开源虚拟化

孙苏伟

(南京邮电大学 江苏 南京 210000)

1 概述

云计算作为大数据分析的基础平台得到了迅猛发展,在私有云建设领域开源的OpenStack 不仅市场占有率高,技术成熟度高,已经逐渐成为开源云计算的标杆,很多企业和组织都加入Openstack 开源社区,很多全球排名前列的大公司都是OpenStack 基金会的会员,在云计算领域OpenStack 占有重要的一席。同样,开源的分布式存储技术Ceph 也在软件定义存储领域占有越来越重的分量,在和OpenStack 结合后,能够实现高性能、高可靠、易维护、弹性伸缩的私有云建设方案。

2 OpenStack和Ceph介绍

2.1 OpenStack 概述

OpenStack 是一个由NASA 和Rackspace 联手发起,以Apache 许可证授权的自由软件和开放源代码项目。项目的目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。作为一个开源项目,它由开源社区来负责项目开展和维护,社区有自己的组织和基金会。作为一款云操作系统或者云平台管理项目,能够为私有云和公有云的实现提供稳定、高性能、高可靠、可扩展的弹性的云计算方案。

2.2 OpenStack 重要组成

OpenStack 作为IaaS 平台的构建项目,主要功能和模块都围绕虚拟机(VM)展开,为虚拟机提供和管理计算、网络和存储能力和资源。项目中包括的核心模块如下。

Nova:计算服务模块,管理虚拟机的生命周期,负责虚拟机的创建、迁移、管理和销毁等操作。

Neutron:提供网络服务,实现了软件定义网络功能,负责创建和管理网络,为VM 提供虚拟网络和物理网络连接。

Glance:提供虚拟机镜像管理和存储服务,管理VM的启动镜像。

Cinder:提供块存储服务,用作VM 中块设备的创建和管理。

Swift:提供对象存储服务的分布式存储,VM 通过RESTful API 存放对象数据。

Ceilometer:监控和计费功能,为平台报警、统计和计费提供数据。

Keystone:认证和授权,为平台的各种服务提供认证和权限管理服务。

Horizon:用户界面,提供基于 Web 的一个用户操作和管理界面。

2.3 OpenStack 的优势与特点

作为开源的云管理平台项目,OpenStack 主要具备下列优势:

(1)发展趋势很积极,经过一段时间发展,应用普及程度和范围广。OpenStack 作为一个开源项目不仅与开源社区合作,而且得到供应商的普遍支持,很多关键模块得到了关注,已经发展成为开源社区项目中关注度非常高的项目之一,而且在全球范围已经有成熟的落地案例,可以在网上找到丰富的相关信息和应用经验。

(2)具有极高的开放性和兼容性,可以屏蔽底层不同品牌、不同技术、不同用途的资源带来的管理复杂度。硬件上OpenStack 能兼容市面上几乎所有的x86 服务器和国产CPU 服务器,不会存在传统硬件厂商绑定特定硬件的情况,完全保留用户自主选择的权利。软件上由于OpenStack API 是Rest-full API,只要其他组件也是采用这种统一的规范,通过标准的OpenStack API,很容易互联互通,因此基于OpenStack 做二次开发,将会比较容易[1]。

(3)自身架构具备优势。与其他开源软件相比,OpenStack 自身模块松耦合,模块分明,各个模块间基本上是独立的基础架构,各模块组件配置也较为灵活,模块间的接口有相应规范,通过消息的机制互通,添加独立功能的组件非常简单,可以灵活按需搭建最合适的云平台。

2.4 Ceph 概述

Ceph 是一个分布式存储系统,项目最早起源于Sage就读博士期间的工作,并随后贡献给开源社区。在经过了数年的发展之后,特别是伴随着云计算技术的发展,Ceph已得到众多云计算厂商的支持并被广泛应用,成为开源社区受关注较高的项目之一,其中OpenStack 整合Ceph 以支持云平台的后端存储运用很广泛。

2.5 Ceph 组成

按照功能和模块划分,Ceph 主要由OSDs、Monitors和MDSs 三个部分组成。

OSDs:Ceph OSD 守护进程,用于集群中所有数据与对象的存储,处理数据的复制、恢复、回填、再均衡,并通过检查其他OSD 守护进程的心跳来向 Ceph Monitors 提供一些监控信息。

Monitors:Ceph Monitor 维护着展示集群状态的各种图表,包括监视器图、OSD 图、归置组(PG)图和CRUSH 图。Ceph 监控整个集群的状态,保存着发生在Monitors、OSD 和PG 上的每一次状态变更的历史信息,维护集群的cluster MAP 二进制表,保证集群数据的一致性。

MDSs:Ceph 元数据服务器,为Ceph 文件系统提供元数据计算、缓存与同步。在ceph 中,元数据也是存储在osd 节点中的,mds 类似于元数据的代理缓存服务器。

2.6 Ceph 的优势与特点

Ceph 之所以能够得到目前的市场地位,除了开源,更因为Ceph 具备下列特点。

高扩展性:Ceph 能够同时提供对象存储、块存储和文件系统存储三种存储服务的统一存储架构,还支持自定义接口,支持多种语言驱动,能够满足不同云平台需求前提下的部署和应用[2]。

高性能:通过Crush 算法的寻址操作,Ceph 摒弃了传统的集中式存储元数据寻址的方案,不仅做到数据分布均衡,而且并行度高。

高可靠:Crush 算法在一致性哈希基础上很好地考虑了容灾域的隔离,结合多副本模式,使得Ceph 能够实现各类负载的副本放置规则,能够实现各类负载的副本放置规则。

大容量:Crush 算法有相当强大的扩展性,理论上能够支持上千个存储节点的规模,支持TB 到PB 级的数据。

高可扩展性:由于Ceph 做到了去中心化,本身没有主控节点,扩展起来比较容易,因而能够满足云计算需要的灵活扩展要求。

2.7 结合OpenStack+Ceph 一起的优势

OpenStack 作为一款经过市场检验证明的优秀的云操作系统,需要Ceph 提供强大的存储功能,Ceph 相比较别的开源或私有分布式存储方案具有一定的竞争力,很多方面具备一定优势,两者属于天然互补,可以共同发展强大。其次两者都采用标准化的对外接口,两者对接起来简单、高效。作为开源项目,社区对二者的结合已经展开了有力支持,对二者的结合应用都做出了专门的研究,已经取得很多成果[3]。

3 方案架构

结合OpenStack+Ceph 构建私有云优势很明显。根据主流的IaaS 云计算架构,结合具体的业务需求分析,做到高性能、高可靠,考虑未来能够按需扩容的架构,最终选择的云平台的总体架构采用业界广泛使用的三层架构模式,设计见图1。

图1 私有云平台架构

物理资源层:云计算平台规划使用通用的x86 服务器构建。采用应用迁移的方式,把应用系统从老的虚拟化系统迁移至新建的云平台,这样还可以把老的服务器逐渐纳入到云计算环境,进行统一管理。

资源虚拟化层:方案采用全面虚拟化,包含服务器虚拟化、存储虚拟化和网络虚拟化,能从底层更好地支持上层云服务。计算虚拟化采用KVM 技术,依据每台计算节点的性能和用途划分不同的Zone,支持不同的计算资源池。存储虚拟化运用Ceph 技术,把每台服务器的存储能力整合起来,并根据磁盘介质的性能差异和应用需求,规划多个共享的存储资源池,提供虚拟机使用的块设备和对象存储两种访问接口。网络虚拟化采用万兆网络加VLAN 的模式,外部互联网经过硬件防火墙与内部网络连接,内部网络基于Neutron 提供虚拟网络服务,不同的租户之间通过VLAN 实现网络隔离。

云服务管理层:平台自动管理和动态分配、部署、配置、重新配置以及回收资源,也可以自动安装应用。平台可以向用户提供虚拟基础架构,用户也可以自己定义虚拟基础架构的构成,如服务器配置,数量,存储类型和大小,网络配置等。

4 多节点OpenStack私有云搭建

部署一个OpenStack+Ceph 的私有云环境,主要分为控制节点、计算节点和存储节点。由于OpenStack 的控制节点通常为奇数个,为了实现高可靠必须由3 个控制节点部署为控制集群。从资源复用、性能和效率考虑控制节点还兼充当网络节点功能。为了数据的高可靠,后端的Ceph 采用三副本模式也至少需要3 个存储节点。为了达成虚拟机基本稳定需求,确保可漂移,方案中至少要2 个计算节点。从网络可靠的维度出发,用作互联的交换机都必须是采用两台相同的交换机来互备。综述搭建一个基于OpenStack 和Ceph 的高可靠私有云平台,至少需要8 台服务器和4 台交换机。

OpenStack 可以拥有全栈的网络架构,通过软件定义的方式可虚拟出安全组、交换机、路由器、负载均衡器以及防火墙等网元,可大大节省物理网络设备的消耗。这些网元均可被云平台统一调度,形成真正意义上的网络资源池。一般情况下,虚拟路由器、虚拟防火墙、负载均衡器建议部署于控制节点,将资源利用率最大化。网络调度组件会以高可用方式部署于控制节点,不仅可以加固网络层面的可靠性,还可增强网络负载能力[4]。

OpenStack 的网络可分为管理、业务、存储、私有等几种流量,采用逻辑分离的原则,提高网络安全性,避免网络之间相互干扰,且所有承载流量的网络端口建议采用两两绑定的方式,提高网络的可用性。

Mgmt 网络:OpenStack 内部组件通信,用于承载控制节点与计算、存储节点之间管理流量,如物理资源的管理,虚拟机的迁移等,建议万兆网卡。

Public 网络:用于外部访问云平台地址和各组件的访问入口。作为控制节点集群网络,对外提供OpenStack Dashboard,连接到业务网络,建议千兆网卡。

Private 网络:用于承载业务系统的业务流量。连接到业务网络,通常配置成trunk,需要多个vlan,建议千兆网卡。

Storage 网络:Ceph 内部管理的网络,用于分布式存储的数据同步、副本复制等;当然还有一个Ceph 对外提供的网络,用于其他节点访问分布式存储,建议万兆网卡。

服务器可以采用多个网卡直接实现网络隔离,当然也可以通过同一个网卡,依赖虚拟交换机来实现隔离。外部的网络划分,可以同一个交换机上采用不同的网段和VLAN隔离来实现。经过上面的分析我们可以得到下面的一个部署方案。见图2、表1、表2 所示。

图2 私有云平台服务器和交换机组成

表1 私有云平台节点网络规划

表2 私有云平台网络VLAN 划分

5 云平台监控与管理

为了方便管理员对平台的管理和维护,需要提供统一的操作维护界面,通过统一的监控告警信息界面,将所有的告警信息,计算、存储和网络等资源的监控信息呈现。云平台的监控和管理可分为三个维度:

(1)管理员对租户使用虚拟机的监控和管理。

(2)对平台租户和资源使用情况的监控和管理。

(3)对硬件资源使用的监控和管理。

平台监控模块在设计开发时就要考虑管理员可以监控物理资源、虚拟资源的运行和使用情况,提供对处理器、内存、磁盘和网络等各种监控指标的监控。同时管理员也可以通过管理平台实现对虚拟机的监控管理,掌握虚拟机操作系统运行状态。对硬件和能耗的监控与智能管理,对基础架构中潜在错误与故障进行判断和预警,做到对IT资源的高效、智能的精确部署,以实现IT 基础设施环境的稳定运行。

6 结语

本文从私有云建设的维度和需求出发,提出了基于OpenStack+Ceph 搭建私有云平台的方案。OpenStack 作为云计算中IaaS 的解决方案,结合Ceph作为云平台分布式存储,能够满足大多数应用场景和需求,是一个成熟的方案。当然,本文仅仅描述了OpenStack+Ceph 构建私有云的主体方案,是一个基础版本,还有很多细节、模式可以深入探讨,技术上有进一步创新和提升的空间。

猜你喜欢
网卡开源虚拟化
五毛钱能买多少头牛
基于OpenStack虚拟化网络管理平台的设计与实现
Server 2016网卡组合模式
对基于Docker的虚拟化技术的几点探讨
H3C CAS 云计算管理平台上虚拟化安全防护的实现
大家说:开源、人工智能及创新
开源中国开源世界高峰论坛圆桌会议纵论开源与互联网+创新2.0
存储虚拟化还有优势吗?
开源计算机辅助翻译工具研究
挑战Killer网卡Realtek网游专用Dragon网卡