七、OpenStack入门 之 若干讨论

几个讨论题

仅供参考,如有雷同,纯属呵(qiao)呵(he)

1. 讨论:如何回馈 OpenStack 社区

张三:

  • 积极关注并回馈社区,贡献代码,争取成为 committer;
  • 积极将研发使用中遇到的问题及代码 ,回馈到社区;
  • 将 issue、idea、丰富的 feature 提交到 bluePrint,提交到社区;
  • 利用自己的一切资源致力于扩大中国 IT 力量在国际的影响力!(评:看到这句好欣慰!我想如果有更多这样的同学在,中国的 IT 前途很有希望);

李四:

  • 关注各种社区并加入到符合自己实际状况的社区中,认真学习前辈的经验,在实际中发现和探索问题,并在社区中讨论自己解决不了的问题,以及帮助他人解答问题;

王五:

  • 积极参加到社区的讨论中来,将一些发现的问题提交到 Issue;
  • 如果有新的 idea,更丰富的 Feature 想法,可以写成 BluePrint 提交到社区;

赵六:

  • 可以提交一些意见和建议(blueprint),自己在初学时遇到的一些问题(issue)
  • 继续学习,争取早日进入社区,能够发现问题思考问题反馈问题

王二麻子:

  • 能,现在水平有限,应该先从写文档和提交 issue、idea、blueprint 做起,同时打好编程基础,多做项目,多看书,多总结。

2. 讨论:OpenStack 管理的资源及提供的服务

OpenStack 管理哪些资源?提供哪些服务?这些服务在公有云上有没有对应的例子?(请尽量多举例)

OpenStack 管理的资源有:计算资源、存储资源、网络资源;

提供的服务有:

  • Nova 计算服务;
  • Cinder 块存储服务;
  • Neutron 网络服务;
  • Swift 高可用分布式对象存储服务;
  • GLance 镜像服务;
  • Keystone 身份验证服务;
  • Horizon 图形界面;
  • 扩展服务:Heat、Sahara

例子:

  1. 虚拟机 – Nova – 对应亚马逊上的 EC2
  2. 虚拟块存储 – Cinder – 对应亚马逊上的 EBS
  3. 虚拟网络 – Neutron – 对应亚马逊上的 VPC
  4. 对象存储 – Swift – 对应亚马逊上的 S3
  5. 权限认证 – Keystone – 在 AWS 的服务是看不见的,隐藏在叫作计费系统的后端(DOS 系统的后端)
  6. 镜像管理 – Glance – 对应亚马逊上的 VM Import/Export
  7. 控制面板 – Horizon – 对应亚马逊上的 Console

3. 讨论: OpenStack 之间的通信关系

OpenStack 之间有哪些通信关系?分别应用在什么地方?

OpenStack 组件之间的通信分为四类:

  1. 基于 HTTP 协议
  2. 基于 AMQP 协议(基于消息队列协议)
  3. 基于数据库连接(主要是 SQL 的通信)
  4. Native API(基于第三方的 API)

关于应用:

  • 基于 HTTP 协议进行通信。通过各项目的 API 建立的通信关系,基本上都属于这一类,这些 API 都是 RESTful Web API,最常见的就是通过 Horizon 或者说命令行接口对各组件进行操作的时候产生的这种通信,然后就是各组件通过 Keystone 对用户身份进行校验,进行验证的时候使用这种通信,还有比如说 Nova Compute 在获取镜像的时候和 Glance 之间,对 Glance API 的调用,还有比方说 Swift 数据的读写,也是通过这个 HTTP 协议的 RESTful Web API 来进行的。
  • 基于高级消息队列协议。基于 AMQP 协议进行的通信,主要是每个项目内部各个组件之间的通信,比方说 Nova 的 Nova Compute 和 Scheduler 之间,然后 Cinder 的 Scheduler 和 Cinder Volume 之间。
  • 基于 SQL 的通信。通过数据库连接实现通信,这些通信大多也属于各个项目内部,也不要求数据库和项目其它组件安装在同一个节点上,它也可以分开安装,还可以专门部署数据库服务器,把数据库服务放到上面,之间通过基于 SQL 的这些连接来进行通信。OpenStack 没有规定必须使用哪种数据库,虽然通常用的是 MySQL
  • 通过 Native API 实现通信。出现在 OpenStack 各组件和第三方的软硬件之间,比如说,Cinder 和存储后端之间的通信,Neutron 的 agent 或者说插件和网络设备之间的通信,这些通信都需要调用第三方的设备或第三方软件的 API。

4. 讨论:如何对 OpenStack 的组件做高可用部署或者负载均衡

请举例说明,如何对 OpenStack 的组件做高可用部署或者负载均衡?

高可用 HA(High Availability)指的是通过尽量缩短因日常维护操作(计划)和突发的系统崩溃(非计划)所导致的停机时间,以提高系统和应用的可用性。

负载均衡指集群中所有的节点都处于活动状态,它们分摊系统的工作负载。

分布式系统 OpenStack 要想做高可用部署或者负载均衡,需要遵循如下步骤:

  1. 针对不同的需求设计相应的方案,合理规划计算资源、网络资源、存储资源;
  2. 将服务、服务中的组件拆开部署,学习 swift 的跨地域部署,有利于提高服务可用性及 OpenStack 的负载均衡;
  3. 将同一服务部署在不同节点,形成双机热备和多机热备的高可用集群,最大化 SOA 架构的作用;
  4. 在复杂的数据中心环境中不断优化与第三方服务的对接和集成,最大化优化 OpenStack 从逻辑架构到物理架构的映射;

我的举例说明:

  • 规模较大的情况下,把各种管理服务部署到不同的服务器上。把这些服务拆开部署 到不同的节点上,甚至要把同 一个服务的不同组件也拆开部署,比如说可以把 Nova 的数据库给独立拧出来部署成一个 MySQL 数据库集群,还有 Cinder 里面的 Scheduler 和 Volume 可以部署到不同的节点上,实际上因为 Swift 项目具有一定的独立性,所以 Swift 本身就有跨地域部署的生产环境,规模非常之大,跨地域部署,所以它的服务的可用性极高,自然有这种栽培的特性,可以提供极高可用性和数据持久性的对象存储服务。
  • 出于高可用的考虑,生产环境中我们会把 OpenStack 的同一个服务部署到不同的节点上,形成双机热备或者多机热备的高可用集群。(或者用负载均衡集群)。
  • 在复杂的数据中心环境中,还有很多第三方服务,比方说 LDAP 服务、DNS 服务等等,考虑如何与第三方服务进行对接和集成。

5. 讨论:比较 Swift 和 Cinder 两种存储之间的异同

异:

Swift 比较独立,Swift 是做对象存储的,提供的是对象存储的接口,采用的是全对等架构。Cinder 是提供块存储的,提供的是块存储的接口,屏蔽了底层的硬件异构性。

关于数据流流向,Swift 对它的操作不仅仅是通过它的 Swift Proxy Server 提供的 RESTful API 进行操作的,它的数据也是通过 RESTful API 走的,我们要把数据放在Swift里面或者从Swift里把数据拿出来,都是通过 RESTful Web API。但是在 Cinder 不一样,Cinder API 基本上只能提供一些操作和管理功能,是直接通过 FC/iSCSI 传输数据到服务器,数据不会通过 Volume 去走,也不会通过 RESTful API。

同:

Swift 和 Cinder 都是软件定义存储,都属于资源管理层中的存储管理模块,都是 OpenStack 最主要的存储组件

6. 讨论:比较 Neutron 和 Nova-Network 的异同

相同点:

  1. 都可以实现网络管理功能;
  2. (租户之间)都可以实现基于 Vlan 的隔离;

不同点:

  1. Nova-Network 只能实现简单的网络管理,Neutron 则比较强大;
  2. Nova-Network 在以前网桥的基础上加模块实现 2 种工作模式:Flat DHCP 和基于 Vlan 的隔离的工作模式;而 Neutron 对上不仅可以提供 Vlan 的隔离,还可以实现 SDN,对下还支持第三方 API、Plugin 的扩展;
  3. Neutron 支持每个租户创建自己的虚拟网络,定义自己网络拓扑,租户间隔离即 Rich Topologies。

7. 讨论:Heat 中的模板和 Sahara 中的模板的异同

相同点:

都是通过模板来实现对资源的创建,销毁,生命周期的管理等等

不同点:

  • Heat 模板 Template 操作的对象是 Stack,并且只有一种方式进行调用,实现的是各个组件资源的整合和形成一个有机的整体
  • Sahara 由于存在两种使用模式:用户模式(edp 模式)和管理模式(iaas 模式),所以模板的使用主要集中在 iaas 模式上,分为两种:集群模板和节点组模板。实现的是对 Hadoop 集群的快速创建

8. 讨论:Ceilometer 获取计量数据的方式

获取计量数据的方式:

(1)需要原始数据的来源

  • 通过 MQP 消息中间件收集各个组件发出来的消息
  • 通过 Ceilometer 的一些 agent 调用 OpenStack 各个 component 的 api 获得数据
  • 如果要有效的采集和 Nova 相关的数据,通过在每个计算节点上运行 Ceilometer 的 polling agent 获得虚拟机的信息

(2)存在数据的存储:依赖第三方后端来实现,默认的后端数据库是 MongoDB。

(3)来自第三方系统:最主要的使用方式就是第三方系统,通过调用 Ceilometer API 获得计量数据,设置报警条件和预值,监听报警,进一步去实现计费和监控功能,具体使用的时候涉及到 Ceilometer 怎么设置,每项数据通过调用什么 API 获得,怎么设置报警的预值等等

9. 讨论:安装 Swift、Cinder 等其他服务的步骤

如果在目前已经完成的 OpenStack 演示环境部署的基础上,继续安装 Swift、Cinder 等其他服务,一般来说有哪些步骤?

Cinder

  1. 配置管理网络 nova-network;
  2. 安装、配置 NTP 服务(本机时间与网络时间同步,将本机作为服务器提供给其他主机使用);
  3. 下载安装 Cinder;
  4. 创建 cinder-volumns 并进行配置;
  5. 配置 keystone 验证、数据库访问(删除 sqlite 文件)及 RabbitMQ 消息中间件;
  6. 重启 volumn 服务。

或者描述为

  1. 安装 openstack 包
  2. 配置管理网络网卡
  3. 修改 hosts 为 block
  4. 重启
  5. 安装 NTP 安装LVM 包
  6. 创建 LVM 卷组 cinder-volumes
  7. lvm 扫描修改
  8. 安装配置块存储卷组件
  9. 验证安装

参考:http://www.aboutyun.com/thread-11681-1-1.html

Swift

  1. 创建 Swift 用户和组;
  2. 创建数据库并进行配置(删除 sqlite 配置文件);
  3. 创建镜像 glance 并配置 rsync.conf,配置完成后重启服务;
  4. 下载安装 swift;
  5. 对 swift 服务进行配置;
  6. 创建 Swift 并运行脚本。

10. 讨论:面对 Ceph 和 Swift 两种存储方案如何进行选型

(1)规模小,节点数量少的使用 Ceph,因为 Swift 至少要用到 5 个节点,划不来。

(2)需要提供云盘的服务的时候选择 Swift,做云盘就意味着要面对大量的用户,还希望用户的体验好,可以让用户来选择数据怎么存,这个时候选择 Swift 是更好的,一方面对于这种规模化部署的支持比较好,第二方面它有一些先进的 Feature,第三方面它的价格成本比 Ceph 要低一些

11. 讨论:OpenStack 和 Docker 如何结合

  1. 使用 Swift 做 Docker 镜像的存储后端
  2. 用 Nova 调度和管理 Docker 容器
  3. 使用 Heat 实现 Docker 容器
  4. 使用 Heat 实现 Docker 的 Orchestration
  5. 基于 Neutron 设计与实现适用于 Docker 的 SDN 方案
  6. 用 Glance 来管理 Docker 的镜像

网络 MOOC 学习笔记
From 高校帮 《OpenStack 入门 @讲师 李明宇》
By 胡飞
at 2016/4/7 14:45:11
时间: 2024-11-05 13:31:09

七、OpenStack入门 之 若干讨论的相关文章

OpenStack入门之初步认识

一.OpenStack 入门 之 基础知识 二.OpenStack 入门 之 基本组件 三.OpenStack 入门 之 各组件解析(基础) 四.OpenStack 入门 之 各组件解析(进阶) 五.OpenStack 入门 之 实际操作 六.OpenStack 入门 之 扩展话题 七.OpenStack 入门 之 若干讨论 写在前面 从 OpenStack 基础知识开始学起,剖析 OpenStack 架构,分析 OpenStack 的各个组件的功能.原理和使用方法,通过实战演练来掌握 Open

一、OpenStack入门 之 初步认识

OpenStack入门 之 初步认识 写在前面 从 OpenStack 基础知识开始学起,剖析 OpenStack 架构,分析 OpenStack 的各个组件的功能.原理和使用方法,通过实战演练来掌握 OpenStack 的部署和操作.为今后学习 OpenStack 的高级课程以及基于 OpenStack 构建企业级云计算系统打下基础. 在接下来的几天里,我将会学到以下主要内容: OpenStack 基础知识 OpenStack 各组件间的关系社交网络挖掘算法与实践 OpenStack 各组件解

三、OpenStack入门 之 各组件解析

OpenStack入门 之 各组件解析 写在前面 学习目标: 掌握 OpenStack 的各组件的架构和功能 本次笔记的内容有: Nova 组件解析 Swift 组件解析 Cinder 组件解析 Neutron 组件解析 Horizon 组件解析 Glance 组件解析 Keystone 组件解析 是常用的 7 个组件: 负责虚拟机创建.管理和销毁.提供计算资源服务的 Nova: 提供对象存储服务的分布式存储 Swift: 提供块存储服务的 Cinder: 提供虚拟机镜像管理和存储服务的 Gla

二、OpenStack入门 之 架构分析

OpenStack入门 之 架构分析 写在前面 学习目标: 了解 OpenStack 各组件的逻辑关系: 了解 OpenStack 的各组件的通信和部署关系: 了解 OpenStack 的工作流程: 接下来我会掌握: OpenStack 组件间的逻辑关系: OpenStack 的API: OpenStack 组件间的通信关系: OpenStack 中几种不同的存储: OpenStack 工作流程: OpenStack 的部署架构: OpenStack 各组件之间的关系有:逻辑关系,通信关系,部署

六、OpenStack入门 之 扩展话题

OpenStack入门 之 扩展话题 写在前面 学习目标: 了解 OpenStack 的自动化部署 了解 Hadoop 云化时存在的问题 了解 Ceph 的简介及 Ceph 在 OpenStack 中的应用 了解 OpenStack 与 Docker 本次笔记的内容有: OpenStack 自动化部署 Hadoop 云化时存在的问题 基于 OpenStack 实现 Hadoop 云化 Ceph 简介 Ceph 在 OpenStack 中的应用 OpenStack 与 Docker 1. Open

云计算教程下载_深入浅出OpenStack入门视频教程

深入浅出OpenStack云计算平台管理(nova-compute/network)课程分类:云计算适合人群:初级课时数量:15课时用到技术:openstack overview.nova-compute/network涉及项目:openstack quantum咨询qq:1840215592 课程内容简介这个课程是openstack入门视频教程,重点放在openstack的部署和网络部分.OpenStack入门视频教程强调实际的动手操作,使用vmware模拟实际的物理平台,让大家可以自己动手去

OpenStack入门到实战视频教程全集下载(罗勇老师经典教程系列)

全网最经典的openstack 视频教程,现在免费了! 罗老师讲得实在是太好了,目前绝对是全网最好的openstack 入门视频,而且讲得特别细,非常适合初学者学习,收集了好久终于齐了,现在贡献给大家.<openstack实战演练与开发入门>http://pan.baidu.com/s/1mgN3oX6 罗老师,很善于总结与分享,个人博客干货也不少.http://yongluo2013.github.io/ 课程介绍 2.OpenStack概论3.实例:OpenStack自动安装(Fuel)4

(转)OpenStack入门

第一部分 OpenStack及其构成简介 一.云计算 云计算是一种计算模型,它将诸如运算能力.存储.网络和软件等资源抽象成为服务,以便让用户通过互联网远程享用,付费的形式也如同传统公共服务设施一样.因需而定.提供方便.动态改变和无限的虚拟化扩展能力是云计算的几个重要特征. 不同的“云”对应着不同的基础设施.下面是三种广义的“云”: l 基础设施即服务(IaaS) l 平台即服务(PaaS) l 软件即服务(SaaS) 译者注:Open为开放之意,Stack则是堆砌,OpenStack合起来如其名

四、OpenStack入门 之 各组件解析(进阶)

OpenStack入门 之 各组件解析(进阶) 学习目标: 掌握更多组件的架构和功能 本次笔记的内容有: Ceilmeter 组件解析 Heat 组件解析 Trove 组件解析 Sahara 组件解析 Ironic 组件解析 1. Ceilometer组件解析 又称为 OpenStack Telemetry(远程测量收集数据),是 OpenStack 里面做 metering 的项目.Ceilometer 的主要目的是 为计费提供数据支持. OpenStack 本身不提供计费的功能,Ceilom