沉淀再出发:openstack初探

沉淀再出发:OpenStack初探

一、前言

OpenStack是IaaS的一种平台,通过各种虚拟化来提供服务。我们主要看一下OpenStack的基本概念和相应的使用方式。

二、OpenStack的框架和使用

2.1、OpenStack简介

OpenStack是一个由NASA(美国国家航空航天局)和Rackspace合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项目。OpenStack是一个开源的云计算管理平台项目,由几个主要的组件组合起来完成具体工作。OpenStack支持几乎所有类型的云环境,项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。OpenStack通过各种互补的服务提供了基础设施即服务(IaaS)的解决方案,每个服务提供API以进行集成。
    OpenStack云计算平台,帮助服务商和企业内部实现类似于 Amazon EC2 和 S3 的云基础架构服务(Infrastructure as a Service, IaaS)。OpenStack 包含两个主要模块:Nova 和 Swift前者是 NASA 开发的虚拟服务器部署和业务计算模块;后者是 Rackspace开发的分布式云存储模块,两者可以一起用,也可以分开单独用。

2.2、OpenStack的架构

OpenStack 本身是一个分布式系统,不但各个服务可以分布部署,服务中的组件也可以分布部署。这种分布式特性让 OpenStack 具备极大的灵活性、伸缩性和高可用性。

2.3、OpenStack的组成

OpenStack开源项目由社区维护,包括OpenStack计算(代号为Nova),OpenStack对象存储(代号为Swift),OpenStack镜像服务(代号Glance)的集合。 OpenStack提供了一个操作平台,或工具包,用于编排云。整个OpenStack是由控制节点,计算节点,网络节点,存储节点四大部分组成。这四个节点也可以安装在一台机器上,单机部署。

1 控制节点负责对其余节点的控制,包含虚拟机建立,迁移,网络分配,存储分配等等
2 计算节点负责虚拟机运行
3 网络节点负责对外网络与内网络之间的通信
4 存储节点负责对虚拟机的额外存储管理等等

控制节点包括以下服务:

(1)管理支持服务包含MySQL与Qpid两个服务

1  MySQL:数据库作为基础/扩展服务产生的数据存放的地方
2  Qpid:消息代理(也称消息中间件)为其他各种服务之间提供了统一的消息通信服务

(2)基础管理服务包含Keystone,Glance,Nova,Neutron,Horizon五个服务

1    Keystone:认证管理服务,提供了其余所有组件的认证信息/令牌的管理,创建,修改等等,使用MySQL作为统一的数据库。
2    Glance:镜像管理服务,提供了对虚拟机部署的时候所能提供的镜像的管理,包含镜像的导入,格式,以及制作相应的模板。
3    Nova:计算管理服务,提供了对计算节点的Nova的管理,使用Nova-API进行通信。
4    Neutron:网络管理服务,提供了对网络节点的网络拓扑管理,同时提供Neutron在Horizon的管理面板。
5    Horizon:控制台服务,提供了以Web的形式对所有节点的所有服务的管理,通常把该服务称为DashBoard。

(3)扩展管理服务包含Cinder,Swift,Trove,Heat,Centimeter五个服务

1 Cinder:提供管理存储节点的Cinder相关,同时提供Cinder在Horizon中的管理面板
2 Swift:提供管理存储节点的Swift相关,同时提供Swift在Horizon中的管理面板
3 Trove:提供管理数据库节点的Trove相关,同时提供Trove在Horizon中的管理面板
4 Heat:提供了基于模板来实现云环境中资源的初始化,依赖关系处理,部署等基本操作,也可以解决自动收缩,负载均衡等高级特性。
5 Centimeter:提供对物理资源以及虚拟资源的监控,并记录这些数据,对该数据进行分析,在一定条件下触发相应动作

网络节点

网络节点仅包含Neutron服务,Neutron负责管理私有网段与公有网段的通信,以及管理虚拟机网络之间的通信/拓扑,管理虚拟机之上的防火等等。网络节点包含三个网络端口:

1 eth0:用于与控制节点进行通信
2 eth1:用于与除了控制节点之外的计算/存储节点之间的通信
3 eth2:用于外部的虚拟机与相应网络之间的通信

计算节点

    计算节点包含Nova,Neutron,Telemeter三个服务。计算节点包含最少两个网络端口:

1 eth0:与控制节点进行通信,受控制节点统一调配
2 eth1:与网络节点,存储节点进行通信
1 基础服务:
2 Nova:提供虚拟机的创建,运行,迁移,快照等各种围绕虚拟机的服务,并提供API与控制节点对接,由控制节点下发任务
3 Neutron:提供计算节点与网络节点之间的通信服务
4 扩展服务:
5 Telmeter:提供计算节点的监控代理,将虚拟机的情况反馈给控制节点,是Centimeter的代理服务。

存储节点

存储节点包含Cinder,Swift等服务。存储节点包含最少两个网络接口:

1 eth0:与控制节点进行通信,接受控制节点任务,受控制节点统一调配
2 eth1:与计算/网络节点进行通信,完成控制节点下发的各类任务

Cinder:块存储服务,提供相应的块存储,简单来说,就是虚拟出一块磁盘,可以挂载到相应的虚拟机之上,不受文件系统等因素影响,对虚拟机来说,这个操作就像是新加了一块硬盘,可以完成对磁盘的任何操作,包括挂载,卸载,格式化,转换文件系统等等操作,大多应用于虚拟机空间不足的情况下的空间扩容等等。
    Swift:对象存储服务,提供相应的对象存储,简单来说,就是虚拟出一块磁盘空间,可以在这个空间当中存放文件,也仅仅只能存放文件,不能进行格式化,转换文件系统,大多应用于云磁盘/文件。

2.4、OpenStack的组件和关系

 1  Compute (Nova) 计算服务
 2  Identity Service (Keystone) 认证服务
 3  Image Service (Glance) 镜像服务
 4  Networking (Neutron) 网络服务
 5  Dashboard (Horizon) 仪表板
 6  Object Storage (Swift) 对象存储
 7  Block Storage (Cinder) 块存储
 8  Orchestration (Heat) 编排
 9  Telemetry (Ceilometer) 监控
10  Database Service (Trove) 数据库服务
11  Data Processing (Sahara) 数据处理

    Openstack 包含以下服务:

 1 1)Dashboard
 2      该服务的工程名为Horizon,目的是提供基于Web的自服务门户,来实现用户与底层服务的交互,比如启动实例,分配IP地址,配置访问控制策略等等。
 3 2)Compute
 4     该服务的工程名为Nova,目的是管理运行在Openstack环境中的计算实例,比如按需创建,调度和销毁虚拟机。
 5 3)Networking
 6     该服务的工程名为Neutron,目的是为Openstack的服务,比如计算服务,提供网络连接服务。提供了API供用户定义网络及其相关内容。基于"插件式"的架构,支持众多主流的网络提供商和技术。
 7 4)Object Storage
 8      该服务工程名为Swift。目的是通过REST API的形式存储和检索非结构化数据。由于采用了数据复制和高扩展性架构,所以具有很高的容错性。该项目的实现并不像具有可挂载目录的文件服务器,Object Storage通过写对象和文件到多个驱动器的实现方式,确保了数据能够在群集之间复制。
 9 5)Block Storage
10     该服务的工程名为Cinder。提供一个持久化的块存储来运行实例。该服务的"可插拔驱动器"模式,提升了创建和管理块存储设备的能力。
11 6)Identity Service
12     该服务的工程名为Keystone。为Openstack服务提供认证和授权,为Openstack服务提供了服务端点目录。
13 7)Image Service
14     该服务的工程名为Glance。存储和检索虚拟机磁盘镜像,Openstack 计算服务在实例配置的过程中会使用到这个服务。
15 8)Telemetry
16     该服务的工程名为Ceilometer。监控和计量Openstack云服务,为Openstack提供计费,阀值管理,扩展和分析等服务。
17 9)Orchestration
18     该服务的工程名为Heat。通过本地的HOT模板格式或者AWS CloudFormation模板格式,甚至Openstack本地REST API和兼容CloudFormation的Query API,来编排多个混合的基于云的应用。
19 10)Database Service
20    该服务的工程名为Trove。为数据库引擎提供了可靠的,高扩展性的"云数据库即服务"。
21 11)Data Processing Service
22    该服务的工程名为Sahara。提供了在Openstack中配置和扩展Hadoop群集的能力,而实现这一点只需要传hadoop版本,群集拓扑结构和节点的硬件信息即可。

2.5、OpenStack的部署

三、总结

    简单的认识了OpenStack的一些组件以及之间的联系,后续将在虚拟机上安装一下OpenStack,对于安装有着相应的工具fuel可以加快安装。

参考文献:http://blog.51cto.com/wzlinux/1961337

https://www.cnblogs.com/kevingrace/p/5733508.html

原文地址:https://www.cnblogs.com/zyrblog/p/9944303.html

时间: 2024-10-11 10:22:42

沉淀再出发:openstack初探的相关文章

沉淀再出发:再谈java的多线程机制

沉淀再出发:再谈java的多线程机制 一.前言 自从我们学习了操作系统之后,对于其中的线程和进程就有了非常深刻的理解,但是,我们可能在C,C++语言之中尝试过这些机制,并且做过相应的实验,但是对于java的多线程机制以及其中延伸出来的很多概念和相应的实现方式一直都是模棱两可的,虽然后来在面试的时候可能恶补了一些这方面的知识,但是也只是当时记住了,或者了解了一些,等到以后就会变得越来越淡忘了,比如线程的实现方式有两三种,线程池的概念,线程的基本生命周期等等,以及关于线程之间的多并发引起的资源的抢占

沉淀再出发:jvm的本质

沉淀再出发:jvm的本质 一.前言 关于jvm,使用的地方实在是太多了,从字面意思上我们都能明白这也是一个虚拟机,那么其他的虚拟机都会用来运行别的操作系统的,而jvm却是实现了可以在不用的操作系统之上运行同样的字节码文件,以此来实现代码的可移植性,大家可以看一下编译原理,就知道了jvm运行代码的本质其实是根据不同的平台将字节码文件(中间代码)变成最终适合不同平台的机器码.同时jvm中也有很多的概念,肯定也是和编译系统相关的了,数据和代码如何存储,数据分为哪几种数据,需要什么格式存储,堆栈等等,以

沉淀再出发:关于java中的AQS理解

沉淀再出发:关于java中的AQS理解 一.前言 在java中有很多锁结构都继承自AQS(AbstractQueuedSynchronizer)这个抽象类如果我们仔细了解可以发现AQS的作用是非常大的,但是AQS的底层其实也是使用了大量的CAS,因此我们可以看到CAS的重要性了,但是CAS也是有缺陷的,但是在大部分使用的情况下,我们往往忽略了这种缺陷. 二.AQS的认识 2.1.AQS的基本概念 AQS(AbstractQueuedSynchronizer)就是抽象的队列式的同步器,AQS定义了

沉淀再出发:如何在eclipse中查看java的核心代码

沉淀再出发:如何在eclipse中查看java的核心代码 一.前言   很多时候我们在eclipse中按F3键打算查看某一个系统类的定义的时候,总是弹出找不到类这样的界面,这里我们把核心对应的代码加进去就可以了. 二.解决办法  2.1.打开配置    首先我们打开windows->preferences->java->install jres,在弹出的界面中选中并编辑:      然后选中rt.jar包,增加依赖: 2.2.添加代码文件 那么这个依赖在哪里呢,其实我们仔细查找就会发现,

沉淀再出发:java中注解的本质和使用

沉淀再出发:java中注解的本质和使用 一.前言 以前XML是各大框架的青睐者,它以松耦合的方式完成了框架中几乎所有的配置,但是随着项目越来越庞大,XML的内容也越来越复杂,维护成本变高.于是就有人提出来一种标记式高耦合的配置方式——注解.方法上可以进行注解,类上也可以注解,字段属性上也可以注解,反正几乎需要配置的地方都可以进行注解.关于注解和XML两种不同的配置模式,争论了好多年了,各有各的优劣,注解可以提供更大的便捷性,易于维护修改,但耦合度高,而XML相对于注解则是相反的.追求低耦合就要抛

沉淀再出发:Bean,JavaBean,POJO,VO,PO,EJB等名词的异同

沉淀再出发:Bean,JavaBean,POJO,VO,PO,EJB等名词的异同 一.前言 想必大家都有这样的困惑,接触的东西越多却越来越混乱了,这个时候就要进行对比和深入的探讨了,抓住每一个概念背后的核心,才能彻底的解决问题,形成自己的理念和道理. 二.Bean,JavaBean,POJO,VO,PO,EJB等名词的比较 2.1.Bean Bean的中文含义是“豆子”,Bean的含义是可重复使用的Java组件.所谓组件就是一个由可以自行进行内部管理的一个或几个类所组成.外界不了解其内部信息和运

沉淀再出发:关于IntelliJ IDEA使用的一些总结

沉淀再出发:关于IntelliJ IDEA使用的一些总结 一.前言 在使用IDEA的时候我们会发现,如果我们先写了一个类的名字,而没有导入这个类的出处,就会提示出错,但是不能自动加入,非常的苦恼,并且也不会提示代码的定义和来源,这些都需要我们进行设置. 二.一些简单问题的设置 2.1.对于鼠标移到代码上没有提示的解决办法    我们打开File->settings->editor->general,然后找到下面的当鼠标移动到的时候显示文档信息,这样就可以了. 2.2.使用idea的时候,

沉淀再出发:spring的架构理解

沉淀再出发:spring的架构理解 一.前言 在spring之前使用的EJB框架太庞大和重量级了,开发成本很高,由此spring应运而生.关于spring,学过java的人基本上都会慢慢接触到,并且在面试的时候也是经常遇到的,因为这个技术极大地方便了我们的开发和部署,并且由此衍生出来的框架和思想在很多地方都有使用,比如spring mvc,spring boot,spring cloud等等框架以及IoC和AOP这两个spring最本质的思想.可以说一切的本质都是为了高内聚,松耦合,将不同的事物

沉淀再出发:jetty的架构和本质

沉淀再出发:jetty的架构和本质 一.前言 我们在使用Tomcat的时候,总是会想到jetty,这两者的合理选用是和我们项目的类型和大小息息相关的,Tomcat属于比较重量级的容器,通过很多的容器层层包裹提供了非常强大的web功能,但是可以自我定制的余地就非常小了,有的时候我们希望自己设计更多的请求接收,处理和返回的环节,就可以用更加轻量级的jetty了. 二.jetty的架构和原理 2.1.Jetty 的基本架构 Jetty 是一个Servlet 引擎,它的架构比较简单,是一个可扩展性和非常