暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

什么是OpenStack?聊一聊OpenStack的核心组件

Cloud云说 2020-07-27
4257


对云计算有一些了解的的人一定听过OpenStack的大名。从2010年诞生至今,OpenStack作为一个开源的云平台管理项目,可以帮助管理一个数据中心的计算、网络、存储等资源,提供IaaS基础设施即服务。

OpenStack最早是由RackSpace及NASA合作研发并发起的开源云计算管理平台项目,整体由OpenStack社区来进行维护和项目推进。自2010年诞生,维持着每半年发布一次新版本的频率,版本按照A-Z的字母顺序,从Austin、Bexar、Cactus一路到2019年的Train版本。随着多次的版本迭代,OpenStack架构也越来越丰满。

所以,OpenStack既是一个社区、一个开源项目,也是一个软件,它提供了开源的云操作系统框架,所有人都可以免费查看和使用OpenStack。基于OpenStack用户可以构建公有云、私有云、混合云,目前来看私有云的应用场景较多。

OpenStack项目由众多组件构成,每一个组件都是一个独立的开源项目。在OpenStack的实际部署使用中,用户可以按需求选择合适的组件做组合,构建自己的云操作系统。


OpenSatck目前发布的组件多达几十个,所有的组件均用Python编写,想了解具体的组件信息可以去OpenStack官网看看,各个组件各司其责,分工合作,共同组成了OpenStack这个架构灵活、功能丰富、可扩展性强的云操作系统。


多的组件我们就不说了,我们在这里主要聊一聊OpenStack中成熟度和应用度较高的几个核心组件。

首先OpenStack作为一套用于IaaS服务的软件,它的核心任务就是管理基础设施,即管理云数据中心海量的计算(CPU、内存)、存储(磁阵、硬盘)、网络(网卡)等资源。我们先来看看管理这三大核心资源的组件。

计算服务Nova,负责虚拟机资源管理。Nova可以将部署了Hypervisor虚拟化软件的物理服务器纳入资源池统一管理。通过驱动Hypervisor实现资源池内物理服务器CPU、内存、本地存储、IO设备等资源的管理,为不同规格的虚拟机分配资源,最终实现虚拟机生命周期的管理,包括虚拟机的创建、启动、停止、删除等。


存储服务Cinder,负责块存储资源管理。Nova可以将本地服务器硬盘作为虚拟机存储使用,但是一旦虚拟机被删除,存储的数据也被删除。因此,OpenStack通过Cinder组件提供能独立于虚拟机的块存储服务。Cinder可以将不同的存储后端设备提供的存储能力抽象为块存储的资源池,然后划分为不同大小的卷,提供给用户使用,可作为虚拟机云硬盘挂载。


存储服务Swift,负责对象存储资源管理。对象存储是云计算中常用的存储服务,特别适合于访问不频繁、访问时延不敏感、数据量大、成本敏感的场景。在OpenStack中,Swift常被用作Glance镜像服务的存储后端,如此,一个操作系统镜像文件可以被众多虚拟机共同安装使用,节约存储成本。


网络服务Neutron,负责网络资源管理。为OpenStack提供了多种基础和扩展的网络服务,包括Layer 2、Layer 3组网、DHCP管理、浮动IP管理、负载均衡、VPN、防火墙等。


此外,OpenStack还有一些重要的公共服务组件。

镜像管理Glance,负责镜像生命周期的管理,包括镜像的创建、删除、查询、上传、下载等。


认证管理Keystone,负责用户身份认证、组件认证,授权,访问控制等。


计量管理Ceilometer,负责云上资源用量的监控和用户信息收集。


图形界面Horizon,向管理员和用户提供图形化人机界面。


OpenStack的组件虽多,但却有一些通用的设计思路,这些设计思路让OpenStack的架构变的灵活、可扩展,以Cinder组件为例子来看一下:


所有组件间都采用RestFul API交互,统一了接口类型,便于集成。组件内部大多采用Message Queue消息队列交互,解耦了组件内的子服务,提高了性能。所有组件都采用Database数据库来存储内部数据信息。调度子服务与工作子服务功能解耦,可做分布式部署,使得 OpenStack 非常容易扩展。

整体来看,通过OpenStack可以帮助用户搭建自己的云操作系统,让用户可以根据自己的需求灵活的使用资源,实现云平台资源的分布式调度管理。OpenStack作为云计算的代表技术,是学习云计算一个不错的切入点。

文中部分图片架构及知识引用自:
OpenStack概述
https://blog.csdn.net/weixin_43258870/article/details/93923678
OpenStack官网
https://www.openstack.org/software/train/
https://www.openstack.org/software/project-navigator/openstack-components#openstack-services
OpenStack的基本概念与架构图
https://www.cnblogs.com/ZonHorizon/p/9869941.html
OpenStack 通用设计思路
https://blog.csdn.net/cloudman6/article/details/51235388

文章转载自Cloud云说,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论