OpenStack云计算平台实战

news2024/11/14 6:17:21

项目一

任务一 了解云计算

目前主流的开源云计算平台如下:

OpenStack。OpenStack是一个提供IAAS开源解决方案的全球性项目,由Rackspace公司和NASA共同创办,采用了Apache2.0许可证,可以随意使用。OpenStack并不要求使用专门的硬件和软件,可以在虚拟系统或裸机系统中运行。它支持多种虚拟机管理器(KVM和XenServer)和容器技术。OpenStack适应不同的用户,既面向为客户部署IAAS的服务提供商,又面向为项目团队和各部门提供私有云服务的企业IT部门。

OpenNebula。

Eucalyptus。

CloudStack。

任务二 了解OpenStack项目

2010年7月,Rackspace公司和NASA合作,分别贡献出Rackspace公司云文件平台代码和NASA Nebula平台代码,并以Apache许可证开源发布了OpenStack,OpenStack由此诞生。经过几年的发展,OpenStack已成为业内领先的开源项目,是能提供部署私有云和公有云的一个操作平台和一套工具集。目前OpenStack已得到了广泛应用,并且在许多大型企业中支撑核心生产业务。要应用OpenStack,首先需要对OpenStack项目有总体的了解。

什么是OpenStack

Open意为开放,Stack意为堆栈或堆叠,OpenStack是一系列开源软件项目的组合。OpenStack是目前非常流行的开源云操作系统,同时也是基础设施资源的系统管理平台。

OpenStack用于对数据中心的计算、存储和网络资源进行统一管理,提供IT基础设施服务。OpenStack可以作为虚拟机、裸金属服务器和容器等的云基础架构和基础设施平台。

在OpenStack中,所有的管理任务都可以通过API来实现,并使用通用的身份认证机制。云管理员可以使用OpenStack提供的仪表盘来实现管理和控制,最终用户可以被授权通过Web图形界面部署和使用资源。除了标准的IAAS功能外,OpenStack还提供额外的组件来实现编排、故障管理和服务管理等功能,以保证用户应用的高可用性。

OpenStack秉承可扩展的设计理念,整个OpenStack项目是由众多相互独立的项目组成的,每个项目都有自己的代号或名称,由一系列进程、命令行脚本、数据库和其他脚本组成。项目之间相互关联,用于协同管理各类计算、存储和网络资源,以提供云计算服务。

OpenStack最初仅包括Nova和Swift两个项目,现在已经有数十个项目。OpenStack项目的构成,部分核心项目的构成如下。

1.仪表盘:项目代号Horizon,提供一个基于Web的自服务门户,让用户和运维人员最终都可以通过它与OpenStack服务交互来完成大多数的云资源操作,如启动虚拟机、分配ip地址、动态迁移等。

2.计算服务:项目代号为Nova,部署和管理虚拟机并为用户提供虚拟机服务。它管理OpenStack环境中计算实例的生命周期,按需响应包括生成、调度、回收虚拟机等操作。

3.网络:项目代号为Neutron,为其他OpenStack服务提供网络连接服务,为用户提供API定义网络和接入网络,允许用户创建自己的虚拟网络并连接各种网络设备接口。

4.对象存储:项目代号为Swift,通过REST API存储或检索对象(文件),以低成本的方式管理大量非结构化数据。

5.块存储:项目代号为Cinder,为运行虚拟机提供持久性块存储服务。它的可插拔驱动架构的功能有助于创建和管理块存储设备。

6.身份服务:项目代号为Keystone,为所有OpenStack服务提供身份认证和授权。

7.镜像:项目代号为Glance,主要提供虚拟机镜像的存储、查询和检索服务。Glance通过提供一个虚拟磁盘镜像的目录和存储库,为Nova的虚拟机提供镜像服务。

任务三 理解OpenStack架构

 OpenStack是各类云的开源云计算平台,具有实现简单、可扩展性强和功能丰富的优点。

1.OpenStack的设计基本原则

OpenStack作为一个开源、可扩展、富有弹性的云操作系统,其架构设计主要参考了Amazon的AWS云计算产品,底层基础为模块的划分和模块间的功能协作,其设计的基本原则如下。

· 按照不同的功能并根据通用性划分项目,拆分子系统。

· 按照逻辑,计划并规范子系统之间的通信。

· 分层设计整个系统架构。

· 为不同功能的子系统之间的通信提供统一的API。

OpenStack的逻辑架构

 OpenStack是分布式系统,必须从逻辑架构映射到具体的物理架构。

1.控制节点:又称管理节点,用于安装并运行各种OpenStack控制服务,负责管理和控制其余节点,执行虚拟机建立、迁移、网络分配、存储分配等任务。OpenStack的大部分服务都运行在控制节点上。控制节点可以只有一个网络接口,用于各个节点之间的通信和管理。

2.网络节点;可以实现网关和路由功能,负责外部网络与内部网络之间的通信,并将虚拟机连接到外部网络。网络节点仅包含Neutron服务。Neutron服务负责管理私有网段与公有网段的通信、虚拟机网络之间的通信,以及虚拟机上的防火前等。

网络节点通常需要3个网络接口,分别用于与控制节点通信、与除控制节点之外的计算节点和存储节点通信、外部的虚拟机与相应网络之间的通信。

网络节点根据虚拟网络选项来决定要部署的服务和组件。部署时有两种选项,一种是提供者网络,另一种是自服务网络。选择提供者网络,将以最简单的方式部署OpenStack网络服务,只需要二层(网桥/交换机)服务和虚拟局域网划分。选择自服务网络,会在提供者网络的基础上增加三层(路由)服务,以便使用像VXLAN这样的网络覆盖分段方法。

3.计算节点:实际运行虚拟机的节点,可以部署多个计算节点。一个计算节点至少需要两个网络接口:一个与控制节点进行通信,受控制节点统一调配;另一个与网络节点和存储节点进行通信。

4.存储节点:负责对虚拟机的额外存储进行管理,即为计算节点的虚拟机提供持久化的卷服务。

OpenStack的物理网络模型

OpenStack物理部署就是要将承载不同服务的物理节点通过物理网络进行连接,从而使各个服务在云平台上协同工作。这里所讲的网络类型涉及的是节点主机之间的物理网络连接,而不是OpenStack网络服务中的虚拟网络。

OpenStack环境中的物理网络配置往往包括以下类型。

1.外部网络:即公共网络,是外部或Internet可以访问的网络。

2.管理网络:用于实现OpenStack各个组件之间的内部通信,并提供API访问端点。该网络必须限制在数据中心之内,以保证云平台的安全性。

3.API网络:用于为用户提供OpenStack API

4.数据网络:用于云部署中的内部数据流,如虚拟机之间的数据通信。

项目二

Horizon功能架构

Horizon主要由用户、系统和设置3个仪表盘组成。这3个仪表盘从不同角度提供OpenStack资源访问界面。

不用用户登陆之后显示的界面不尽相同,其中所显示的内容都来源于其他OpenStack服务和组件。

Horizon通过前端Web界面将隐藏于后台的OpenStack服务和组件的内容1以可视化方式呈现出来。

Horizon包含一个Apache服务器程序,通过这个Web服务器向客户端提供Web界面。

Horizon由Web服务和会话存储服务提供。

项目是OpenStack服务调度的基本单元,作为一组隔离的云资源,可以为每个客户创建项目。

用户又称云用户,是指使用OpenStack云服务的个人、系统或者服务的账户名称。

使用RDO的PackStack安装器安装OpenStack完毕后,会提示OpenStack仪表盘的网址。

OpenStack安装过程中会默认创建两个云用户账户,一个是云管理员账户admin,另一个是用于测试的普通用户账户demo。

OpenStack网络服务最主要的功能就是为虚拟机实例提供网络连接,目前由Neutron项目实现。Neutron为整个OpenStack环境提供软件定义网络支持。开放式虚拟交换机OVS凭借其丰富的功能和较高的性能,已经成为OpenStack部署中非常受欢迎的虚拟交换机。RDO一体化OpenStack云平台默认使用OVS。

为解决OpenStack的Neutron架构引入的性能问题,开放式虚拟网络OVN项目被推出。由OVN作为虚拟网络的控制平面,Neutron只需要提供API的处理。OVN为OVS增加了对虚拟网络的原生支持,大大提高了OVS在实际应用环境中的性能和规模。

浮动IP地址

OpenStack虚拟机实例可以分配两类地址。一类是私有地址,这是由DHCP服务器自动分配给虚拟机实例网络接口的IP地址。私有地址是私有网络的一部分,同一广播域内的实例基于私有地址进行通信。也可以通过虚拟路由器从其他私有网络访问私有地址。

另一类地址是浮动IP地址,这是由Neutron组件提供的服务。它不用任何DHCP服务,直接在客户端静态设置即可。事实上,客户端操作系统并不知道它被分配了一个浮动IP地址。将数据包发送到分配有浮动IP地址的网络接口的工作由Neutron负责。分配有浮动IP地址的实例能够通过浮动IP地址从外部网络被访问。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2067846.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

“走进孔子博物馆 赓续千年乐章”孔乐古筝专场音乐会圆满成功!

2024年8月11日下午,备受期待的“走进孔子博物馆 赓续千年乐章”孔乐古筝专场音乐会在孔子博物馆隆重举行。此次音乐会不仅吸引了众多古筝艺术爱好者前来观看,更是一次将中华传统文化精髓与现代艺术相结合的盛会。现场座无虚席,观众朋友们共同…

C语言基础(十三)

指针的用法&#xff1a; 测试代码1&#xff1a; #include "date.h" #include <stdio.h> #include <stdlib.h> int main() { int time getTime();int n 3, m 4; // 使用malloc函数动态分配n行的指针数组&#xff0c;并将其赋值给二级指针arr。…

链表的插入操作——CSP-J1真题详解

【题目】 假设有一个链表的节点定义如下: struct Node { int data; Node* next; }; 现在有一个指向链表头部的指针&#xff1a;Node* head。如果想要在链表中插入一个新的节点&#xff0c;其成员 data 的值为 42&#xff0c;并使新节点成为链表的第一个节点&#xff0c;下面…

LLM和VLM算法常见面试题

LLM相关问题&#xff1a; Bert和GPT的区别 Bert和GPT是两种不同类型的自然语言处理&#xff08;NLP&#xff09;模型&#xff0c;具有一些重要的区别。 模型架构&#xff1a;Bert是基于Transformer架构的模型&#xff0c;它是一个预训练的双向编码器。GPT也是基于Transformer…

【最大的和】

题目 思路 最大序列和的一般做法 dp前缀最大值 dp尾缀最大值 枚举分界点 代码 #include <bits/stdc.h> using namespace std;const int N 5e410; int a[N]; int um[N], dm[N], s; int main() {int t;cin >> t;um[0] INT_MIN;while(t--){int n;cin >> …

【Linux操作系统】进程间通信(1)

目录 一、认识进程间通信二、匿名管道三、命名管道 一、认识进程间通信 进程间不能直接传递数据&#xff0c;因为进程具有独立性&#xff0c;直接传递会破坏进程的独立性。 进程间通信是什么&#xff1f; 一个进程把自己的数据交给另一个进程。 为什么要有进程间通信&#xf…

ThreadLocal解惑

目录 1、ThreadLocal是什么? 2、ThreadLocal实现原理 3、设置线程变量的2种方式 4、关于ThreadLocal的内存泄漏问题 5、使用过程中的注意事项和误区 1、ThreadLocal是什么? 比较书面的回答&#xff1a; 类如其名&#xff0c;线程本地变量。当使用 ThreadLocal 维护变量时…

防爆巡检机器人:工业安全领域的璀璨明星

在当今快速发展的工业领域&#xff0c;安全与效率是企业追求的双核动力。特别是在石油、化工、钢铁冶金、燃气等高风险、高爆炸性的行业中&#xff0c;如何确保生产环境的绝对安全&#xff0c;同时提升巡检效率&#xff0c;成为了企业亟需解决的重大课题。正是在这样的背景下&a…

leetcode 438 找到字符串中所有字母异位词

leetcode 438 找到字符串中所有字母异位词 正文 正文 本题和 leetcode 49 字母异位分词 有些类似&#xff0c;只是 49 题中要求我们找出所有的异位词并进行存储&#xff0c;而本题我们只需要找出异位词对应的索引值。因此&#xff0c;我们无需用到字典&#xff0c;只需使用列表…

理解线程 ID 和 LWP

序言 在不同的系统中&#xff0c;为了更好地管理用户可能会采取不同的编号。比如在学校的教务系统中&#xff0c;管理学生使用的是学号&#xff1b;但是在住宿系统中&#xff0c;为了更加方便的获取一个学生的寝室信息&#xff0c;可能会采取结合你是哪一栋&#xff0c;哪一层&…

MindSearch 部署的到 Hugging Face Space

和原有的CPU版本相比区别是把internstudio换成了github codespace。 随着硅基流动提供了免费的 InternLM2.5-7B-Chat 服务&#xff08;免费的 InternLM2.5-7B-Chat 真的很香&#xff09;&#xff0c;MindSearch 的部署与使用也就迎来了纯 CPU 版本&#xff0c;进一步降低了部署…

【Windows】深度学习环境部署

引言 1 Windows环境准备 1.1 VSCode Visual Studio Code&#xff08;简称 VSCode&#xff09;是一款由微软开发的开源代码编辑器。它非常受开发者欢迎&#xff0c;因为它功能强大、扩展性好&#xff0c;并且支持多种编程语言。VSCode 尤其适合 Python 开发&#xff0c;特别是…

WEB渗透免杀篇-Pezor免杀

往期文章 WEB渗透免杀篇-免杀工具全集-CSDN博客 WEB渗透免杀篇-加载器免杀-CSDN博客 WEB渗透免杀篇-分块免杀-CSDN博客 WEB渗透免杀篇-Powershell免杀-CSDN博客 WEB渗透免杀篇-Python源码免杀-CSDN博客 WEB渗透免杀篇-C#源码免杀-CSDN博客 WEB渗透免杀篇-MSFshellcode免杀…

文心一言 VS 讯飞星火 VS chatgpt (331)-- 算法导论22.5 7题

七、给定有向图 G ( V &#xff0c; E ) G(V&#xff0c;E) G(V&#xff0c;E)&#xff0c;如果对于所有结点对 u , v ∈ V u,v∈V u,v∈V,我们有 u → v u→v u→v或 v → u v→u v→u&#xff0c;则 G G G是半连通的。请给出一个有效的算法来判断图 G G G是否是半连通的。证…

根据需求、质量属性描述和架构特性开发一套公路桥梁在线管理系统

目录 案例 【题目】 【问题 1】(12 分) 【问题 2】(13 分) 答案 【问题 1】答案 【问题 2】答案 相关推荐 案例 阅读以下关于软件架构评估的叙述&#xff0c;在答题纸上回答问题 1 和问题 2。 【题目】 某单位为了建设健全的公路桥梁养护管理档案&#xff0c;拟开发一套公…

若依框架搭建

一、后端启动 1、git克隆下载前后端分离版本 RuoYi-Vue: &#x1f389; 基于SpringBoot&#xff0c;Spring Security&#xff0c;JWT&#xff0c;Vue & Element 的前后端分离权限管理系统&#xff0c;同时提供了 Vue3 的版本 (gitee.com) 2、初始化项目 到springboot后如…

Excel中的“LOOKUP”:熟识四个LOOKUP,可以让数据“查找”得心应手

熟识四个lookup&#xff0c;可以让数据“查找”得心应手。 (笔记模板由python脚本于2024年08月23日 19:27:16创建&#xff0c;本篇笔记适合喜欢用Excel处理数据的coder翻阅) 【学习的细节是欢悦的历程】 Python 官网&#xff1a;https://www.python.org/ Free&#xff1a;大咖…

入门 PyQt6 看过来(项目)29 在线购物-销售分析

销售分析部分包含按月分析的簇状图和按类别分析的饼图&#xff0c;如下&#xff1a; ​ 1 页面设计 设计该页面其实很简单&#xff0c;说白了就是两个也切tab类以及饼图和簇状图。打开QTDesiger&#xff0c;按下图添加控件&#xff0c;并重命名如下&#xff1a; ​ 2 按类…

计算机视觉与视觉大模型对板书检测效果对比

文章目录 计算机视觉火山引擎ocr阿里云ocr 视觉大模型GPT4kimi通义千问chatGLM百度 全部正确某开源模型&#xff0c;效果不佳 计算机视觉 火山引擎ocr 阿里云ocr 视觉大模型 GPT4 kimi 通义千问 chatGLM 百度 全部正确 某开源模型&#xff0c;效果不佳

基于springboot的养老院管理系统的设计与实现 (含源码+sql+视频导入教程)

&#x1f449;文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1 、功能描述 基于springboot的养老院管理系统拥有多种角色账号&#xff1a;管理员和用户 管理员&#xff1a;管理员管理、用户管理、健康管理、病例方案管理、药品管理、餐饮管理、外出管理、入住管理…