什么是OpenStack?
OpenStack是一个云平台管理的项目,它不是一个软件,它是由几个主要的组件组合起来,为公有云、私有云和混合云的建设与管理提供软件的开源项目。现在已经有来自100多个国家的数万名个人和200多家企业参与到OpenStack的开发,如 NASA、华为、谷歌、惠普、Intel、IBM、微软等。这些机构与个人将 OpenStack作为基础设施即服务资源的通用前端。Openstack项目的首要任务是简化云的部署过程并为其带来良好的可扩展性。OpenStack系统或其演变版本目前被广泛应用在各行各业,包括自建私有云、公共云、租赁私有云及混合云,用户包括思科、英特尔、IBM、华为、希捷等,OpenStack 支持 KVM、Xen、Lvc、Docker等虚拟机软件或容器。
OpenStack的发展历史
OpenStack是由美国国家航空航天局(NASA)和 Rackspace合作研发,Apache许可的开源项目。项目自2010年成立,发布了该项目的第一个版本Austin,该版本是当时第一个开源的云计算平台项目。此后,OpenStack基本每半年发行一个新版本,截至目前最新版本是第二十四版本Xena,不同于其他软件的版本号采用数字编码,OpenStack 采用一个单词来描述不同的版本,其中单词首字母指明版本的新旧。比如目前的版本Xena就比之前的 Wallaby要新,同时“X”在26个字母中排行第二十四,所以称第二十四版本。各个版本的发行时间表参考网站 https://releases.openstack.org/。
OpenStack能做什么
OpenStack的主要目标是管理数据中心的资源,简化资源分配。它管理三部分资源,分别是:
- 计算资源:OpenStack可以规划并管理大量虚拟机,从而允许企业或服务提供商按需提供计算资源;开发者可以通过API访问计算资源从而创建云应用,管理员与用户则可以通过web访问这些资源;
- 存储资源:OpenStack可以为云服务或云应用提供所需的对象及块存储资源。因为对性能及价格有需求,很多组织已经不能满足于传统的企业级存储技术,因此OpenStack可以根据用户需要提供可配置的对象存储或块存储功能;
- 网络资源:如今的数据中心存在大量的配置工作,如服务器、网络设备、存储设备、安全设备均需要配置,而它们还将被划分成更多的虚拟设备或虚拟网络;这会导致 IP 地址的数量、路由配置、安全规则将爆炸式增长;传统的网络管理技术无法真正的可高扩展、高自动化地管理下一代网络;因而OpenStack 提供了插件式、可扩展、API 驱动型的网络及IP管理功能;
OpenStack的典型架构和功能如下图所示:
OpenStack的典型架构和功能映射
表示层:负责与用户交互,主要包含一些图形化界面的web门户网站(用于提供给非开发人员进行界面操作),同时该部分还提供了供开发人员进行二次开发的API接口。该部分还包括一些更高级的特性,例如:负载均衡、控制台代理安全和命名服务。
逻辑层:提供云服务的智能控制功能,如:orchestration(负责任务的工作流管理)、scheduling(任务到资源的调度管理)、policy(配额等服务)、image registry(镜像实例的元数据管理)和logging(事件计费管理)。
资源层:包含计算、网络和存储等物理资源。
OpenStack的核心项目
OpenStack覆盖了网络、虚拟化、操作系统、服务器等各个方面。根据成熟及重要程度的不同,被分解成核心项目、孵化项目,支持项目和相关项目。每个项目都有自己的委员会和项目技术主管,而且每个项目都不是一成不变的,如孵化项目可以根据发展的成熟度和重要性,转变为核心项目。
OpenStack项目间的逻辑关系如下图所示:
OpenStack项目间的逻辑关系
以下列举OpenStack的6个最重要的核心项目。
Keystone:Keystone是OpenStack的认证服务,Keystone为所有的OpenStack组件提供认证和访问策略服务,它依赖自身REST系统进行工作,主要对Swift、Glance、Nova等进行认证与授权,它对动作消息中的来源者进行合法性鉴定。 Keystone采用两种授权方式,一种基于用户名/密码,另一种基于令牌(Token)。除此之外,Keystone提供以下三种服务:
- 令牌服务:令牌中含有授权用户或群组的授权信息,授权给合法用户或群组。
- 目录服务:目录中含有合法用户或群组的可用服务列表。
- 策略服务:利用Keystone具体指定用户或群组的某些访问权限。
Nova:Nova是一套控制器,用于为单个用户或使用群组管理虚拟机实例的整个生命周期,根据用户需求来提供虚拟服务,Nova负责管理整个云的计算资源、网络资源、授权及测度。虽然Nova本身并不提供任何虚拟能力,但是它将使用libvirt API与虚拟机的宿主机进行交互。Nova通过Web服务API来对外提供处理接口。
Glance:Glance负责OpenStack的镜像服务,Glance是一套虚拟机镜像发现、注册、检索系统,它提供虚拟机镜像的存储,查询和检索功能,为nova进行服务,依赖于存储服务和数据库服务。
Swift:Swift为OpenStack提供了一种分布式、持续虚拟对象存储。Swift具有跨节点的存储能力。Swift组件有冗余和失效备援管理功能,也能够处理归档和媒体流,特别是对大数据和大容量的测度非常高效。
Cinder:Cinder是OpenStack的块存储服务组件,它管理所有块存储设备,为VM服务。
Neutorn:Neutorn为OpenStack提供虚拟的网络功能,为每个不同的租户建立独立的网络环境。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统