分享

零基础学习openstack(下)【中级篇】

pig2 发表于 2014-11-26 11:21:17 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 6 42389
本帖最后由 pig2 于 2014-11-27 00:02 编辑

接上一篇
零基础学习openstack(上)【中级篇】

了解Cinder
这是存储管理的组件。一直以来,很多人都很纠结AWS的EBS的实现。Openstack也终于推出了自己的存储管理组件。
Cinder存储管理主要是指虚拟机的存储管理。目前支持开源和商业化产品。开源的sheepdog,Ceph等。商业存储的支持,目前IBM是最积极的。未来如果商业存储厂商都支持Cinder,对Openstack的商业化还是非常有利的。
对于企业来说,使用分布式作为虚拟机的存储,并不能真正节省成本,维护一套分布式存储,成本还是很高的。目前虚拟机的各种高可用,备份的问题,其实都可以把问题交给商业存储厂商来解决。

我们知道Openstack从Folsom开始使用Cinder替换原来的Nova-Volume服务,为Openstack云平台提供块存储服务。

cinder架构如下:



Cinder服务
  • API service:负责接受和处理Rest请求,并将请求放入RabbitMQ队列。Cinder提供Volume API V2, 我没有找到格式很好的在线文档,大体可以参见Openstack block storage API V1
  • Scheduler service: 处理任务队列的任务,并根据预定策略选择合适的Volume Service节点来执行任务。目前版本的cinder仅仅提供了一个Simple Scheduler, 该调度器选择卷数量最少的一个活跃节点来创建卷。
  • Volume service: 该服务运行在存储节点上,管理存储空间。每个存储节点都有一个Volume Service,若干个这样的存储节点联合起来可以构成一个存储资源池。为了支持不同类型和型号的存储,当前版本的Cinder为Volume Service如下drivers。当然在Cinder的blueprints当中还有一些其它的drivers,以后的版本可能会添加进来。
    • 本地存储:LVM, Sheepdog
    • 网络存储: NFS, RBD (RADOS)
    • IBM: XIV, Storwize V7000, SVC storage systems
    • Netapp: NFS存储;ISCSI存储则需要OnCommand 5.0和Data ONTAP 7-mode storage systems with installed iSCSI licenses
    • EMC: VNX, VMAX/VMAXe
    • Solidfire: Solidfire cluster




cinder还有更多内容
1.Cinder有哪些服务?
2.Cinder有哪些部署命令?
3.Cinder在IT环境中的主要有哪些问题?

详细参考:
Openstack之Cinder介绍

更多内容参考

Openstack之Cinder介绍

OpenStack IceHouse版cinder模块新增加功能

OpenStack-Icehouse(nova-network)多节点块存储服务Cinder部署

Openstack Cinder安装向导:在Unitestack的UOS下测试

OpenStack Cinder 与 Ceph 使用进阶篇(基于 Icehouse 版本)

cinder中删除僵尸卷(error_deleting )的方法


当然如果想了解源码,同样附上源码:
源码分析:

Openstack Cinder中建立volume过程的源码解析(1)

Openstack Cinder中建立volume过程的源码解析(2)

Openstack Cinder中建立volume过程的源码解析(3)

Openstack Cinder中建立volume过程的源码解析(4)----以及taskflow相关解析

Openstack Cinder中建立volume过程的源码解析(5)----以及taskflow相关解析

Openstack Cinder中建立volume过程的源码解析(6)----以及taskflow相关解析

Openstack Cinder中建立volume过程的源码解析(7)----以及taskflow相关解析

Openstack Cinder中建立volume过程的源码解析(8)


Openstack Cinder中建立volume过程的源码解析(9)

OpenStack Cinder服务启动过程中的资源加载和扩展源码解析之一

Paste Deployment简介以及cinder-api-paste.ini的解析(1)

cinder服务启动源码分析

cinderclient源码解析之一

cinderclient源码解析之二

OpenStack Cinder源码分析之一

OpenStack Cinder源码分析之二

OpenStack Cinder源码分析之三

OpenStack Cinder源码分析之四

OpenStack Cinder源码分析之五

OpenStack Cinder源码分析之六

OpenStack Cinder源码分析之七

OpenStack Cinder源码分析之八





了解Glance
Glance比较简单,是一个虚机镜像的存储。向前端nova(或者是安装了Glance-client的其他虚拟管理平台)提供镜像服务,包括存储,查询和检索。这个模块本身不存储大量的数据,需要挂载后台存储(Swift,S3。。。)来存放实际的镜像数据。

OpenStack镜像服务器是一套虚拟机镜像发现、注册、检索系统,我们可以将镜像存储到以下任意一种存储中:

  • 本地文件系统(默认)
  • OpenStack对象存储
  • S3直接存储
  • S3对象存储(作为S3访问的中间渠道)
  • HTTP(只读)


功能及特点
提供镜像相关服务


Glance构件
  • Glance控制器
  • Glance注册器

从上面我们看出glance是可以存储的,但是其重心是管理镜像,存储则由比如swift、S3等来完成。如果感觉还有疑惑,参考:
让你真正明白cinder与swift、glance的区别

我们知道了glance能干什么,那么我们该如何使用,glance命令该如何使用,api该如何使用,详细参考openstack之glance篇


更多参考:


翻译:Openstack镜像服务(glance)用法的高级例子

建立高可用OpenStack云系列--建立HA Openstack云(五):安装Glance



同样附上
源码分析
Glance源码架构分析(一)

Glance源码架构分析(二)


Glance源码架构分析(三)


Glance源码架构分析(四)


了解Horizon
严格意义来说,Horizon不会为Openstack 增加一个功能,他更多的是一个演示,demo。不过对于很多用户来说,了解Openstack基本都是从Horizon,dashboard开始。从这个角度来看,他在Openstack各个项目里,显得非常重要。

Horizon的开发者,应该是最累的。需要和各个项目打交道。每个项目的功能很多都是需要通过Dashboard来展现。
大家需要注意的是:Horizon只是使用了Openstack部分API功能,很多功能,你可以根据你的需求去实现。

OpenStack管理的Web接口----Horizon

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

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

上面如果作为初学者,可能还是感觉两个字“模糊”,好吧,其实Horizon可以理解为openstack界面,我们既可以通过界面操作openstack,也可以通过shell的方式操作openstack。但是界面在前些版本中还不够完善,很多操作通过命令行的方式更方便些。不过Horizon目前功能在不断的完善。
Horizon无须过多的介绍,因为当我们安装完毕之后,我们自然能够看到界面。
那么该如何使用它,比如创建项目、用户创建网络,详细参考

测试OpenStack Icehouse Horizon —— 创建项目、用户创建网络

更多内容:

Openstack Horizon Icehouse Blueprint简介

horizon 界面修改以及扩展

openstack dasboard使用的是什么语言,如何搭建开发环境,如何本地化(汉化)

OpenStack Dashboard二次开发--简明教程如何设置OpenStack Horizon开发环境 Part 2

给horizon添加分配指定floating IP的功能



Ceilometer
这是实现监控和计量的组件。这应该算是Grizzly的孵化项目。对他的了解其实很少。在Grizzly版本里,你应该可以在Dashboard里看到这个组件。
监控和计费一直是一个难题,尤其用户希望知道cpu和内存的使用情况。看看他如何解决这个问题。到时候看看同事如何调用api来解决监控和计量的问题。解决计量,计费就简单的。

这个组件目前大家讨论的不多,但是可能会后期发力,因为云平台搭建之后,我们该如何计费,这是个问题,所以有些同学云平台该怎么计费
请问楼主,云主机根据不同配置进行计费的功能是用什么软件实现的?有开源的软件吗?
那么研究下这个这个组件就可以了,我们对它有了了解,那么
Ceilometer如何部署
参考
部署Ceilometer到已有环境中


Ceilometer的概念
可参考:
OpenStack监控项目Ceilometer的一些术语

Ceilometer API说明参考
OpenStack监控测量服务Ceilometer安装及 API说明

其它
OpenStack里数据采集(监控数据、计费数据)基础设施--Ceilometer

关于源码:
云计算计费:Ceilometer的alarm模块代码分析

OpenStack Ceilometer Collector代码解读


了解Heat
这个项目是要解决虚拟机的软件部署的问题。你的虚拟机创建好,os准备好,你还需要做很多配置才能使用,如何能实现把所有繁琐的操作简化呢?亚马逊上有一个专门的工具:AWS cloudformation。目前Openstack上,希望通过Heat来实现类似的功能。
关于这个项目,还是有很多争议。不过这个项目是Redhat发起。他们的功力是不容置疑,等Openstack成熟后,这个项目的重要性就会体现出来。
真的要实现弹性扩展,自动部署,都是需要指望这个。

上面整体介绍,下面我们介绍
什么是Heat
Heat是一套业务流程平台,旨在帮助用户更轻松地配置以OpenStack为基础的云体系。利用Heat应用程序,开发人员能够在程序中使用模板以实现资源的自动化部署。Heat能够启动应用、创建虚拟机并自动处理整个流程。它还拥有出色的跨平台兼容性,能够与Amazon Web Services业务流程平台CloudFormation相对接——这意味着用户完全可以将AWS模板引入OpenStack环境当中。

为什么是产生Heat

Openstack 对应于云计算的概念,是实现了IaaS(Infrastructure as a Service),即基础设施即服务,提供对云的基础设施运行环境的管理。有了基础设施就可以在其上部署和运行相关的应用,如web群集,paas,数据库等等相关的服务和应用。对于这些软件运行环境的构建需要进行相关的部署过程,当然部署的过程可以手工的完成,但是面对于快速构建应用的普遍需求来说,手工部署并不能满足要求,并且云环境下的群集部署对于普通的非专业的用户来说是很困难的,所以就需要实现一种自动化的通过简单定义和配置就能实现部署的云部署方式。Heat项目就是提供了一种通过模版定义的协同部署方式,实现云基础设施软件运行环境的自动化部署。

上面我们对Heat有了初步的认识,那么Heat如何安装部署、命令如何使用等
更多内容:

openstack(G版、icehouse版本)中Heat介绍

heat安装和配置及命令使用

在OpenStack中通过Heat来使用Docker Containers

OpenStack中的Heat分析

OpenStack Heat服务再介绍 (二)

OpenStack Heat 模板学习一 之hello world

OpenStack Heat模板学习二 之LBaaS(负载均衡即服务)


对于下面组件,目前研究的人不多,简单了解即可

Lbaas
Load Balancer as a Service(LBaaS),负载均衡即服务,是OpenStack在其网络组件Neutron中提供的一种将负载均衡器/软件/设备纳入到Neutron体系中的框架,纳入到Neutron中的负载均衡以服务的形态供用户使用。用户可以在OpenStack中自行创建负载均衡器,进行相关配置,并对自己在OpenStack上的instance进行负载均衡。此功能类似于AWS和阿里云中为用户提供的负载均衡服务。

  SEnginx目前实现了对OpenStack LBaaS的支持,可以为OpenStack中的instance提供负载均衡服务,这是通过提供了一个LBaaS的driver来实现的,具体使用方法详见:https://github.com/NeusoftSecurity/SEnginx-LBaaS-Driver
目前SEnginx只支持OpenStack的Havana版本(2013.10)

详细参考
SEnginx支持OpenStack LBaaS





oslo
这个项目其实就是把所有组件需要用到相同的东西,集中起来,以前叫nova common,估计感觉不贴切,现在单独成立一个项目。日后大家开发新的组件,估计都需要用到oslo。
其资料不多,相关内容:
OpenStack配置解析库——oslo.config


Moniker
这是实现dns功能的组件。其实如果你用过AWS,你就知道这个功能是必不可少。新浪目前的已经加上了这个功能,每个虚拟机,都会自动有一个dns记录。
估计集成到Dashboard里,还是需要等待一段时间啊。目前该项目开发还是非常积极。


marconi
此项目用于解决openstack 消息队列的扩展问题。据说这是Rackspce推出的项目,就是为了解决他们生产中遇到消息队列的问题。













已有(6)人评论

跳转到指定楼层
hadoop12 发表于 2014-12-19 15:20:28
回复

使用道具 举报

szqjerry 发表于 2015-2-3 17:56:01
不错不错,呵呵呵呵
回复

使用道具 举报

szqjerry 发表于 2015-2-3 17:57:12
不错不错,呵呵呵呵
回复

使用道具 举报

szqjerry 发表于 2015-2-3 17:58:53
不错不错,呵呵呵呵
回复

使用道具 举报

szqjerry 发表于 2015-2-3 17:59:44
不错不错,呵呵呵呵
回复

使用道具 举报

是小泽 发表于 2015-7-8 08:17:23
每天都了解一点
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条