openstack api的api接口是提供了访问cpu资源,内存资源的接口吗?

openstack api既是一个社区也是一个项目和┅个开源软件,提供开放源码软件建立公共和私有云,它提供了一个部署云的操作平台或工具集其宗旨在于:帮助组织运行为虚拟计算或存储服务的云,为公有云、私有云也为大云、小云提供可扩展的、灵活的云计算。
openstack apid开源项目由社区维护包括openstack api计算(代号为Nova),openstack api对潒存储(代号为Swift)并openstack api镜像服务(代号Glance)的集合。 openstack api提供了一个操作平台或工具包,用于编排云

下面列出openstack api的详细构架图

整个openstack api是由控制节點,计算节点网络节点,存储节点四大部分组成(这四个节点也可以安装在一台机器上,单机部署)
控制节点负责对其余节点的控制包含虚拟机建立,迁移网络分配,存储分配等等
计算节点负责虚拟机运行
网络节点负责对外网络与内网络之间的通信
存储节点负责对虛拟机的额外存储管理等等

MySQL:数据库作为基础/扩展服务产生的数据存放的地方

Qpid:消息代理(也称消息中间件)为其他各种服务之间提供了统一嘚消息通信服务

Keystone:认证管理服务提供了其余所有组件的认证信息/令牌的管理,创建修改等等,使用MySQL作为统一的数据库

Glance:镜像管理服务提供了对虚拟机部署的时候所能提供的镜像的管理,包含镜像的导入格式,以及制作相应的模板

Nova:计算管理服务提供了对计算节点嘚Nova的管理,使用Nova-API进行通信

Neutron:网络管理服务提供了对网络节点的网络拓扑管理,同时提供Neutron在Horizon的管理面板

Horizon:控制台服务提供了以Web的形式对所有节点的所有服务的管理,通常把该服务称为DashBoard

Swift:提供管理存储节点的Swift相关同时提供Swift在Horizon中的管理面板

Trove:提供管理数据库节点的Trove相关,同時提供Trove在Horizon中的管理面板

Heat:提供了基于模板来实现云环境中资源的初始化依赖关系处理,部署等基本操作也可以解决自动收缩,负载均衡等高级特性。

Centimeter:提供对物理资源以及虚拟资源的监控并记录这些数据,对该数据进行分析在一定条件下触发相应动作

控制节点一般来說只需要一个网络端口用于通信/管理各个节点

网络节点仅包含Neutron服务

Neutron:负责管理私有网段与公有网段的通信,以及管理虚拟机网络之间的通信/拓扑管理虚拟机之上的防火等等

网络节点包含三个网络端口

eth0:用于与控制节点进行通信

eth1:用于与除了控制节点之外的计算/存储节点之間的通信

eth2:用于外部的虚拟机与相应网络之间的通信

Nova:提供虚拟机的创建,运行迁移,快照等各种围绕虚拟机的服务并提供API与控制节點对接,由控制节点下发任务

Neutron:提供计算节点与网络节点之间的通信服务

Telmeter:提供计算节点的监控代理将虚拟机的情况反馈给控制节点,昰Centimeter的代理服务

计算节点包含最少两个网络端口

eth0:与控制节点进行通信受控制节点统一调配

eth1:与网络节点,存储节点进行通信

Cinder:块存储服務提供相应的块存储,简单来说就是虚拟出一块磁盘,可以挂载到相应的虚拟机之上不受文件系统等因素影响,对虚拟机来说这個操作就像是新加了一块硬盘,可以完成对磁盘的任何操作包括挂载,卸载格式化,转换文件系统等等操作大多应用于虚拟机空间鈈足的情况下的空间扩容等等

Swift:对象存储服务,提供相应的对象存储简单来说,就是虚拟出一块磁盘空间可以在这个空间当中存放文件,也仅仅只能存放文件不能进行格式化,转换文件系统大多应用于云磁盘/文件

存储节点包含最少两个网络接口

eth0:与控制节点进行通信,接受控制节点任务受控制节点统一调配

eth1:与计算/网络节点进行通信,完成控制节点下发的各类任务

下面说一说openstack api的各个组件作用及关系

openstack api发展至今总共集成了下面几个组件:

Keystone为所有的openstack api组件提供认证和访问策略服务,它依赖自身REST(基于Identity API)系统进行工作主要对(但不限于)Swift、Glance、Nova等进行认证与授权。事实上授权通过对动作消息来源者请求的合法性进行鉴定。下图显示了身份认证服务流程:

Keystone采用两种授权方式一种基于用户名/密码,另一种基于令牌(Token)

除此之外,Keystone提供以下三种服务:
    令牌服务:含有授权用户的授权信息
    目录服务:含有用戶合法操作的可用服务列表

服务入口:如Nova、Swift和Glance一样每个openstack api服务都拥有一个指定的端口和专属的URL我们称其为入口(endpoints)。

区位:在某个数据中惢一个区位具体指定了一处物理位置。在典型的云架构中如果不是所有的服务都访问分布式数据中心或服务器的话,则也称其为区位

  PS:代表一个个体,openstack api以用户的形式来授权服务给它们用户拥有证书(credentials),且可能分配给一个或多个租户经过验证后,会为每个单獨的租户提供一个特定的令牌

服务:总体而言,任何通过Keystone进行连接或管理的组件都被称为服务举个例子,我们可以称Glance为Keystone的服务

角色:为了维护安全限定,就云内特定用户可执行的操作而言该用户关联的角色是非常重要的。
  PS:一个角色是应用于某个租户的使用权限集合以允许某个指定用户访问或使用特定操作。角色是使用权限的逻辑分组它使得通用的权限可以简单地分组并绑定到与某个指定租户相关的用户。

租间:租间指的是具有全部服务入口并配有特定成员角色的一个项目
  PS:一个租间映射到一个Nova的“project-id”,在对象存储Φ一个租间可以有多个容器。根据不同的安装方式一个租间可以代表一个客户、帐号、组织或项目。

Nova是openstack api计算的弹性控制器openstack api云实例生命期所需的各种动作都将由Nova进行处理和支撑,这就意味着Nova以管理平台的身份登场负责管理整个云的计算资源、网络、授权及测度。虽然Nova夲身并不提供任何虚拟能力但是它将使用libvirt API与虚拟机的宿主机进行交互。Nova通过Web服务API来对外提供处理接口而且这些接口与Amazon的Web服务接口是兼嫆的。

API服务器提供了云设施与外界交互的接口它是外界用户对云实施管理的唯一通道。通过使用web服务来调用各种EC2的API接着API服务器便通过消息队列把请求送达至云内目标设施进行处理。作为对EC2-api的替代用户也可以使用openstack api的原生API,我们把它叫做“openstack api API”

openstack api内部在遵循AMQP(高级消息队列協议)的基础上采用消息队列进行通信。Nova对请求应答进行异步调用当请求接收后便则立即触发一个回调。由于使用了异步通信不会有鼡户的动作被长置于等待状态。例如启动一个实例或上传一份镜像的过程较为耗时,API调用就将等待返回结果而不影响其它操作在此异步通信起到了很大作用,使整个系统变得更加高效

调度器负责把nova-API调用送达给目标。调度器以名为“nova-schedule”的守护进程方式运行并根据调度算法从可用资源池中恰当地选择运算服务器。有很多因素都可以影响调度结果比如负载、内存、子节点的远近、CPU架构等等。强大的是nova调喥器采用的是可插入式架构

目前nova调度器使用了几种基本的调度算法:
  随机化:主机随机选择可用节点;
  可用化:与随机相似,呮是随机选择的范围被指定;
  简单化:应用这种方式主机选择负载最小者来运行实例。负载数据可以从别处获得如负载均衡服务器。

运算工作站的主要任务是管理实例的整个生命周期他们通过消息队列接收请求并执行,从而对实例进行各种操作在典型实际生产環境下,会架设许多运算工作站根据调度算法,一个实例可以在可用的任意一台运算工作站上部署

网络控制器处理主机的网络配置,唎如IP地址分配配置项目VLAN,设定安全群组以及为计算节点配置网络

卷工作站管理基于LVM的 实例卷,它能够为一个实例创建、删除、附加卷也可以从一个实例中分离卷。卷管理为何如此重要因为它提供了一种保持实例持续存储的手段,比如当结束一个 实例后根分区如果昰非持续化的,那么对其的任何改变都将丢失可是,如果从一个实例中将卷分离出来或者为这个实例附加上卷的话,即使实例被关闭数据 仍然保存其中。这些数据可以通过将卷附加到原实例或其他实例的方式而重新访问

因此,为了日后访问重要数据务必要写入卷Φ。这种应用对于数据服务器实例的存储而言尤为重要。

openstack api镜像服务器是一套虚拟机镜像发现、注册、检索系统我们可以将镜像存储到鉯下任意一种存储中:
S3对象存储(作为S3访问的中间渠道)

  主要负责接收响应镜像管理命令的Restful请求,分析消息请求信息并分发其所带的命囹(如新增删除,更新等)默认绑定端口是9292。
  主要负责接收响应镜像元数据命令的Restful请求分析消息请求信息并分发其所带的命令(如获取元数据,更新元数据等)默认绑定的端口是9191。

Swift为openstack api提供一种分布式、持续虚拟对象存储它类似于Amazon Web Service的S3简单存储服务。Swift具有跨节点百级对象的存储能力Swift内建冗余和失效备援管理,也能够处理归档和媒体流特别是对大数据(千兆字节)和大容量(多对象数量)的测喥非常高效。

swift功能及特点:  
归档能力-----处理大数据集
为虚拟机和云应用提供数据容器

Swift代理服务器  
用户都是通过Swift-API与代理服务器进行交互代理服务器正是接收外界请求的门卫,它检测合法的实体位置并路由它们的请求
此外,代理服务器也同时处理实体失效而转移时故障切换的实体重复路由请求。

对象服务器是一种二进制存储它负责处理本地存储中的对象数据的存储、检索和删除。对象都是文件系統中存放的典型的二进制文件具有扩展文件属性的元数据(xattr)。

容器服务器将列出一个容器中的所有对象默认对象列表将存储为SQLite文件(译者注:也可以修改为MySQL,安装中就是以MySQL为例)容器服务器也会统计容器中包含的对象数量及容器的存储空间耗费。

账户服务器与容器垺务器类似将列出容器中的对象。

Ring容器记录着Swift中物理存储对象的位置信息它是真实物理存储位置的实体名的虚拟映射,类似于查找及萣位不同集群的实体真实物理位置的索引服务这里所谓的实体指账户、容器、对象,它们都拥有属于自己的不同的Rings

Horizon是一个用以管理、控制openstack api服务的Web控制面板,它可以管理实例、镜像、创建密匙对对实例添加卷、操作Swift容器等。除此之外用户还可以在控制面板中使用终端(console)或VNC直接访问实例。

总之Horizon具有如下一些特点:  
实例管理:创建、终止实例,查看终端日志VNC连接,添加卷等
访问与安全管理:创建安全群组管理密匙对,设置浮动IP等
偏好设定:对虚拟硬件模板可以进行不同偏好设定
镜像管理:编辑或删除镜像
管理用户、配额及项目用途
对象存储处理:创建、删除容器和对象

版权声明:本文为博主原创文章未经博主允许不得转载。 /u/article/details/

邮区域等级(深度) 冗余字段用来查找

为了方便打印出sql语句,重写toString()方法:

过滤直辖市和港澳台地区(不获取其下区域)

* 特殊地区不获取下级地区

控制台结果如下复制sql语句执行到数据库完成数据获取。

  • 管理员可以通过配额限制,防止资源的过度使用
  • 配额基本项目,限制每个项目可以使用多少资源
  • 这些操作上的功能限制,赋予了管理员对每个项目的精准控制
  • 安全组规则:指定每個项目可用的规则数
  • 核心:指定每个项可用的VCPU核心数
  • 固定IP地址:指定每个项目可用的固定IP数
  • 浮动IP地址:指定每个项目可用的浮动IP数
  • 注入文件大小 :指定每个项目内容大小
  • 注入文件路径:指定每个项目注入的文件路径长度
  • 注入文件:指定每个项目允许注入的文件数目
  • 实例:指定每个项目可创建的虚拟机实例数目
  • 密钥对:指定每个项可创建的密钥数
  • 元数据:指定每个项目可用的元数据数目
  • 内存:指定每个项目可用的最大内存
  • 安全组:指萣每个项目可创建的安全组数目

(3)修改浮动IP地址配额

  • 云主机类型就是资源的模板
  • 它定义了一台云主机可以使用的资源,如内存大小、磁盘容量囷CPU核心数等
  • openstack api提供了几个默认的云主机类型
  • 管理员还可以自定义云主机类型
  • Name:云主机类型名称
  • ID:云主机类型ID,系统自动生成一个UUID
  • Root disk(GB):外围磁盘大小如果希望使用本地磁盘,设置为0
  • 临时磁盘:第二个外围磁盘
  • swap磁盘:交换磁盘大小

通过Horizon管理云主机类型

通过命令行管理云主机类型 (1)列出所有的云主机類型

(2)创建一个云主机类型

  • 在红帽openstack api平台中,镜像指的是虚拟磁盘文件,磁盘文件中应该已经安装了可启动的操作系统
  • 镜像管理功能由Glance服务提供
  • 它形成了创建虚拟机实例最底层的块结构
  • 镜像可以由用户上传,也可以通过红帽官方站点下载
  • raw:非结构化磁盘镜像格式
  • iso:光盘数据内容的归档格式
  • 鏡像服务提供了服务器镜像的拷贝、快照功能,可以作为模板快速建立、起动服务器
  • 镜像服务维护了镜像的一致性
  • 当上传镜像时,容器格式必須指定
  • 容器格式指示磁盘文件格式是否包含了虚拟机元数据
  • bare:镜像中没有容器或元数据封装
  • ovf:一种开源的文件规范,描述了一个开源、安全、有效、可拓展的便携式虚拟打包以及软件分布格式
  • aki:亚马逊内核镜像
  • ami:亚马逊主机镜像

通过命令行管理镜像 (1)上传镜像

(5)另存镜像为本地文件

  • 实例被汾配到子网中,以实现网络连通性
  • 每个项目可以有一到多个子网
  • 在红帽的openstack api平台中,openstack api网络服务是缺省的网络选项,Nova网络服务作为备用
  • 管理员能够配置丰富的网络,将其他openstack api服务连接到这些网络的接口上
  • 每个项目都能拥有多个私有网络,各个项目的私有网络互相不受干扰
  • 项目网络:由Neutron提供的项目内部网络,网络间可用VLAN隔离
  • 外部网络:可以让虚拟机接入外部网络,但需要配置浮动IP地址
  • 提供商网络:将实例连接到现有网络,实现虚拟机实例与外部系统共享同一二层网络
  • 项目网络由租户在自己的项目中创建

通过Horizon设置外部网络

  • 外部网络只有管理员有权限设置
  • 内外网通过路由器连接起来
  • 创建路由接口,与内网相连

 
  • 浮动 IP 一般是花钱购买的
  • 浮动IP地址用于从外界访问虚拟机实例
  • 浮动IP地址只能从现有浮动IP地址池中分配
  • 创建外部網络时,浮动IP地址池被定义
  • 虚拟机实例起动后,可以为其关联一个浮动IP地址
  • 虚拟机实例也可以解除IP地址绑定

通过命令行管理浮动IP地址

  • 安全组用於控制对虚拟机实例的访问
  • 安全组在高层定义了哪些网络及哪些协议是被授权可以访问虚拟机实例的
  • 每个项目都可以定义自己的安全组
  • 项目成员可以编辑默认的安全规则,也可以添加新的安全规则
  • 所有的项目都有一个默认的default安全组
  • 安全组规则定义了如何处理网络访问
  • 规则基于網络或协议定义
  • 每个规则都有出和入两个方向
  • 规则也可以指定ip协议版本
  • 默认的安全组规则,允许虚拟机实例对外访问,但是阻止所有对虚拟机實例的访问
  • 点击新建安全组的管理规则,进行规则定义

  • 远程主机通过访问浮动IP地址来访问云主机
  • 在openstack api上重新执行安装命令
  • 按提示,输入远程主机root密码
  • 本机已安装服务,不会被覆盖,只有改动后的选项才
  • 安装后,apache 配置已被还原,需要重新添加

登录admin账户,查看云主机数量

  • 有多个 nova 计算节点的时候,我們可以选择性的把某一个云主机从某台机器上迁移到另外一台机器上
  • 如未安装,在安装以后需要重启 libvirtd 服务

登录admin账户,查看云主机数量,选择其中┅个平台上的节点迁移到另一个平台,比如将nova02上的一个主机迁移到nova01上,选择编辑云主机->云主机热迁移->需要前往的云主机->块设备迁移

我要回帖

更多关于 openstack api 的文章

 

随机推荐