OpenStack云计算快速入门(1)

该教程基于Ubuntu12.04版,它将帮助读者建立起一份OpenStack最小化安装。我是五岳之巅,翻译中多采用意译法,所以个别词与原版有出入,请大家谅解。我不是英语专业,我觉着搞技术最重要的就是理解,而不是四级和考研中那烦人的英译汉,所以我的目标是忠于原意、通俗表达,Over。英文原文在这里(http://docs.openstack.org/es@***/openstack-compute/starter/content/ ,请将ex@***中的@去掉,CU屏蔽的F词),下面步入正题:

第一部分 OpenStack及其构成简介

一、云计算

云计算是一种计算模型,它将诸如运算能力、存储、网络和软件等资源抽象成为服务,以便让用户通过互联网远程享用,付费的形式也如同传统公共服务设施一样。因需而定、提供方便、动态改变和无限的虚拟化扩展能力是云计算的几个重要特征。

不同的“云”对应着不同的基础设施。下面是三种广义的“云”:

l 基础设施即服务(IaaS)

l 平台即服务(PaaS)

l 软件即服务(SaaS)

译者注:Open为开放之意,Stack则是堆砌,OpenStack合起来如其名,就是许多Open的Softwares堆积的集合,但1 + 1 > 2,系统的功能更为强大。

二、OpenStack

(一)OpenStack概要

OpenStack是一整套开源软件项目的综合,它允许企业或服务提供者建立、运行自己的云计算和存储设施。Rackspace与NASA是最初重要的两个贡献者,前者提供了“云文件”平台代码,该平台增强了OpenStack对象存储部分的功能,而后者带来了“Nebula”平台形成了OpenStack其余的部分。而今,OpenStack基金会已经有150多个会员,包括很多知名公司如“Canonical、DELL、Citrix”等。

以下是5个OpenStack的重要构成部分:

l Nova - 计算服务

l Swift - 存储服务

l Glance - 镜像服务

l Keystone - 认证服务

l Horizon - UI服务

图1 OpenStack基本构架

下图展示了Keystone、Dashboard二者与其它OpenStack部分的交互。

(二)OpenStack计算设施----Nova

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

功能及特点

l 实例生命周期管理

l 计算资源管理

l 网络与授权管理

l 基于REST的API

l 异步连续通信

l 支持各种宿主:Xen、XenServer/XCP、KVM、UML、VMware vSphere及Hyper-V

OpenStack计算部件

l Nova弹性云包含以下主要部分:

l API Server(nova-api)

l 消息队列(rabbit-mq server)

l 运算工作站(nova-compute)

l 网络控制器(nova-network)

l 卷管理(nova-volume)

l 调度器(nova-scheduler)


API服务器(nova-api)

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

消息队列(Rabbit MQ Server)

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

运算工作站(nova-compute)

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

网络控制器(nova-network)

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

卷工作站(nova-volume)

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

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

调度器(nova-scheduler)

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

目前nova调度器使用了几种基本的调度算法:

随机化:主机随机选择可用节点;

可用化:与随机相似,只是随机选择的范围被指定;

简单化:应用这种方式,主机选择负载最小者来运行实例。负载数据可以从别处获得,如负载均衡服务器。

(三)OpenStack镜像服务器----Glance

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

本地文件系统(默认)

l OpenStack对象存储

l S3直接存储

l S3对象存储(作为S3访问的中间渠道)

l HTTP(只读)

功能及特点

提供镜像相关服务

Glance构件

l Glance控制器

l Glance注册器

(四)OpenStack存储设施----Swift

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

功能及特点

l 海量对象存储

l 大文件(对象)存储

l 数据冗余管理

l 归档能力-----处理大数据集

l 为虚拟机和云应用提供数据容器

l 处理流媒体

l 对象安全存储

l 备份与归档

l 良好的可伸缩性

Swift组件

l Swift账户

l Swift容器

l Swift对象

l Swift代理

l Swift RING

Swift代理服务器

用户都是通过Swift-API与代理服务器进行交互,代理服务器正是接收外界请求的门卫,它检测合法的实体位置并路由它们的请求。

此外,代理服务器也同时处理实体失效而转移时,故障切换的实体重复路由请求。

Swift对象服务器

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

注意:xattr格式被Linux中的ext3/4,XFS,Btrfs,JFS和ReiserFS所支持,但是并没有有效测试证明在XFS,JFS,ReiserFS,Reiser4和ZFS下也同样能运行良好。不过,XFS被认为是当前最好的选择。

Swift容器服务器

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

Swift账户服务器

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

Ring(索引环)

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

(五)OpenStack认证服务(Keystone)

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

Keystone采用两种授权方式,一种基于用户名/密码,另一种基于令牌(Token)。除此之外,Keystone提供以下三种服务:

l 令牌服务:含有授权用户的授权信息

l 目录服务:含有用户合法操作的可用服务列表

l 策略服务:利用Keystone具体指定用户或群组某些访问权限

认证服务组件

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

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

l 用户:Keystone授权使用者

译者注:代表一个个体,OpenStack以用户的形式来授权服务给它们。用户拥有证书(credentials),且可能分配给一个或多个租户。经过验证后,会为每个单独的租户提供一个特定的令牌。[来源:http://blog.sina.com.cn/s/blog_70064f190100undy.html ]

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

l 角色:为了维护安全限定,就云内特定用户可执行的操作而言,该用户关联的角色是非常重要的。

译者注:一个角色是应用于某个租户的使用权限集合,以允许某个指定用户访问或使用特定操作。角色是使用权限的逻辑分组,它使得通用的权限可以简单地分组并绑定到与某个指定租户相关的用户。

l 租间:租间指的是具有全部服务入口并配有特定成员角色的一个项目。

译者注:一个租间映射到一个Nova的“project-id”,在对象存储中,一个租间可以有多个容器。根据不同的安装方式,一个租间可以代表一个客户、帐号、组织或项目。

(六)OpenStack管理的Web接口----Horizon

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

l 实例管理:创建、终止实例,查看终端日志,VNC连接,添加卷等

l 访问与安全管理:创建安全群组,管理密匙对,设置浮动IP等

l 偏好设定:对虚拟硬件模板可以进行不同偏好设定

l 镜像管理:编辑或删除镜像

l 查看服务目录

l 管理用户、配额及项目用途

l 用户管理:创建用户等

l 卷管理:创建卷和快照

l 对象存储处理:创建、删除容器和对象

l 为项目下载环境变量

转载于:https://blog.51cto.com/ghostwolf/1832790

OpenStack快速入门相关推荐

  1. OpenStack快速入门-queens版本

    系统内存要求8G,硬盘100G,操作系统可以连接公网,单网卡即可满足操作.本次实验使用了2块网卡. 操作系统版本:(最小化安装) CentOS Linux release 7.4.1708 (Core ...

  2. [官版翻译ing]OpenStack云计算快速入门之一:OpenStack及其构成简介

    转自:http://blog.chinaunix.net/uid-22414998-id-3263551.html <OpenStack Starter Guide for Ubuntu 12. ...

  3. python快速入门答案-总算懂得python脚本快速入门教程

    PyQt5是基于Digia公司强大的图形程式框架Qt5的python接口,由一组python模块构成.PyQt5本身拥有超过620个类和6000函数及方法.在可以运行于多个平台.PyQt5拥有双重协议 ...

  4. qq位置如何用启动百度地图定位服务器,腾讯位置服务API快速入门

    前言 之前项目有个需求,在网页上显示微信发送过来的位置信息,该开始想用百度地图,后来发现腾讯地图相对简单一点 快速入门 申请Key 引入js 把###替换成你申请的key 定义容器 设置好宽高度 设置 ...

  5. SpringBoot | SpringBoot快速入门

    文章目录 SpringBoot快速入门(一) 1.什么是SpringBoot 2.什么是微服务架构 3.第一个SpringBoot程序 4.SpringBoot自动装配原理 (1)Pom.xml (2 ...

  6. python脚本教程-总算懂得python脚本快速入门教程

    PyQt5是基于Digia公司强大的图形程式框架Qt5的python接口,由一组python模块构成.PyQt5本身拥有超过620个类和6000函数及方法.在可以运行于多个平台.PyQt5拥有双重协议 ...

  7. python从入门到精通视频,python快速入门精讲

    <跟老齐学Python:从入门到精通>pdf下载在线阅读全文,求百度网盘云资源 <跟老齐学Python:从入门到精通>百度网盘pdf最新全集下载:链接: ?pwd=9ib9 提 ...

  8. Shiro第一个程序:官方快速入门程序Qucickstart详解教程

    目录 一.下载解压 二.第一个Shiro程序 1. 导入依赖 2. 配置shiro配置文件 3. Quickstart.java 4. 启动测试 三.shiro.ini分析 四.Quickstart. ...

  9. 计算机入门新人必学,异世修真人怎么玩?新手快速入门必备技巧

    异世修真人怎么快速入门?最近新出来的一款文字修仙游戏,很多萌新不知道怎么玩?进小编给大家带来了游戏新手快速入门技巧攻略,希望可以帮到大家. 新手快速入门攻略 1.开局出来往下找婆婆,交互给点钱,旁边有 ...

最新文章

  1. openresty开发系列21--lua的模块
  2. 【干货】Html与CSS入门学习笔记12-14【完】
  3. 您的JAX-RS API并非天生就等于:使用动态功能
  4. python核心编程豆瓣_python核心编程一书笔记之第一篇
  5. eclipse查找指定行数
  6. 2021CCF推荐国际学术会议A类及相关领域介绍
  7. html固定表格宽度代码,如何固定HTML表格的宽度
  8. Android R系统Fingerprint指纹流程归纳
  9. unity开发记录:TextMeshPro设置显示中文
  10. 零基础学习嵌入式C语言要学习什么?
  11. 论文流程图——使用VISIO制作论文中的流程图[进阶版]
  12. Maxwell和Simplorer联合仿真设置注意事项
  13. 目录遍历,PHP 遍历一个文件夹下所有文件和子文件夹的方法
  14. 快捷键:实用快捷键分享
  15. 【从零开始玩量化12】无风险利率
  16. 写一些关于如何运用计算机英语,关于介绍电脑的英语作文,80词左右.
  17. ECCV 2020 oral | CondInst:沈春华团队新作,将条件卷积引入实例分割
  18. 熊猫烧香源代码-(不是完整的)
  19. 08-合成模式Quarkus实现
  20. Chrome浏览器批量离线下载迅雷快传资源

热门文章

  1. java 反射 动态代理
  2. 北斗时钟在国内各行业的应用前景
  3. mongodb地理位置索引实现原理
  4. C++中关于流的概念
  5. GIS开发随笔(2)——关于建立GIS数据库的几个问题
  6. Ubuntu Server 12.04下cobbler + dnsmasq +tftpd-hpa的安装配置(四)
  7. spring mvc velocity 配置备忘
  8. 泛前端知识图谱(Web/iOS/Android/RN)
  9. 二叉树--先序中序遍历求后序遍历
  10. 前端技术学习之选择器(一)