OpenStack简介和相关资料

OpenStack简介和相关资料

博客分类: OpenStack

openstack云计算虚拟机

最近2个星期在尝试用OpenStack搭建私有云,提供方便的虚拟机部署和管理。写一篇博客记录一下相关资料。

1. OpenStack简介

OpenStack是一个开源软件,它提供了一个部署云的平台。为虚拟计算或存储服务的公有/私有云,提供可扩展的、灵活的云计算。

OpenStack包含了一组由社区维护的开源项目,主要项目有Compute(Nova), Object Storage(Swift),Image Service(Glance)。

Nova提供虚拟计算服务,Swift提供存储服务,Glance提供虚拟机镜像的注册、分发服务。

他们之间的关系可以用这个简图来表示:

2. OpenStack能够做什么

OpenStack能帮我们建立自己的IaaS,提供类似Amazon Web Service的服务给用户:

普通用户可以通过它注册云服务,查看运行和计费情况

开发和运维人员可以创建和存储他们应用的自定义镜像,并通过这些镜像启动、监控和终止实例

平台的管理人员能够配置和操作网络,存储等基础架构

3. OpenStack Compute(Nova)的软件架构

下图是Nova的软件架构,每个nova-xxx组件是由python代码编写的守护进程,每个进程之间通过队列(Queue)和数据库(nova database)来交换信息,执行各种请求。而用户通过nova-api暴露的web service来同其他组件进行进行交互。Glance是相对独立的基础架构,nova通过glance-api来和它交互。

4. Nova各个组件的作用

nova-api是Nova的中心。它为所有外部调用提供服务,除了提供OpenStack本身的API规范外,他还提供了兼容EC2的部分API,所以也可以用EC2的管理工具对nova进行日常管理。

nova-compute负责对虚拟机实例进行创建、终止、迁移、Resize的操作。工作原理可以简单描述为:从队列中接收请求,通过相关的系统命令执行他们,再更新数据库的状态。

nova-volume管理映射到虚拟机实例的卷的创建、附加和取消。

nova-network从队列中接收网络任务,然后执行任务控制虚拟机的网络,比如创建桥接网络或改变iptables的规则。

nova-scheduler 提供调度,来决定在哪台资源空闲的机器上启动新的虚拟机实例

Queue为守护进程传递消息。只要支持AMQP协议的任何Message Queue Sever都可以,当前官方推荐用RabbitMQ。

SQL database存储云基础架构中的各种数据。包括了虚拟机实例数据,网络数据等。

user dashboard是一个可选的项目。它提供了一个web界面来给普通用户或者管理者来管理、配置他们的计算资源。

5. Nova的硬件架构

Nova采用无共享、基于消息的架构,我们能安装每个nova-xxx组件在单独的服务器上,这样可以根据不同目的进行不同的配置安装

单结点:一台服务器运行所有的nova-xxx组件,同时也驱动虚拟实例。这种配置只为尝试Nova,或者为了开发目的进行安装。

1控制节点+N个计算节点:一个控制结点运行除nova-compute外的所有nova-services,然后其他compute结点运行nova-compute。所有的计算节点需要和控制节点进行镜像交互,网络交互,控制节点是整个架构的瓶颈,这种配置主要用于概念证明或实验环境。

多节点:增加节点单独运行nova-volume,同时在计算节点上运行nova-network,并且根据不同的网络硬件架构选择DHCP或者VLan模式,让控制网络和公共网络的流量分离。

6. OpenStack的安装

OpenStack的安装是比较麻烦,可以参考官方文档进行: http://docs.openstack.org/diablo/openstack-compute/admin/content/ , 文档有一些地方没有更新到最新版本,会遇到一些小问题,推荐一个第3方脚本进行安装:  http://devstack.org/ 它适合用来搭建实验环境。可以通过阅读这个脚本,同时配合官方文档来理解整个软件架构。

同时通过Ubuntu源安装的nova在实际使用过程中遇到一些小问题,都需要打补丁来解决,建议了解整个配置以后,可以改成从git上获取stable分支的代码进行安装,这样日后维护升级也比较方便。

如果你需要从无到有搭建整个数据中心,推荐Crowbar实现自动化远程安装: https://github.com/dellcloudedge/crowbar 从裸机到可用系统只用在web界面点击几下即可完成,还自带各种SA常用功能(比如nagios监控等),不过这个东西也比较复杂,推荐有兴趣的SA们试用。

7. 遇到的问题

官方文档和devstack脚本基本上都是为了搭建实验环境写的,没有为生产环境做最佳实践的指导,在安装过程中遇到很多问题,比如:

A. 多节点部署的时候要用multi host参数

B. 使用VLAN+硬件网关的时候做网络配置时候,需要指定dnsmasq_config_file来强制覆盖dnsmasq的网关配置

C. 用KVM制作windows镜像的时候需要安装virtio驱动

D. 通过Ubuntu源安装的Nova,在Ami格式的镜像启动的instance无法做snapshot,需要打补丁

E. 通过Ubuntu源安装的Nova,在启用keystone进行身份认证的情况下,无法提供EC2的兼容API,也需要打补丁

8. Openstack 的各种资料

A. 官网和wiki http://docs.openstack.org/

B. Devstack的脚本说明,对于了解如何配置各个组件非常有帮助 http://devstack.org/stack.sh.html

C. Rackspace的参考架构,有很多很有用的信息,包括硬件,网络,软件配置等等,强烈推荐: http://www.referencearchitecture.org

D. 看你准备基于什么技术进行虚拟化,KVM或者Xen的文档也是很有用的。

9. 展示

用dashboard管理虚拟机

通过noVNC在web上连接到虚拟机

OpenStack简介和相关资料

博客分类: OpenStack

openstack云计算虚拟机

最近2个星期在尝试用OpenStack搭建私有云,提供方便的虚拟机部署和管理。写一篇博客记录一下相关资料。

1. OpenStack简介

OpenStack是一个开源软件,它提供了一个部署云的平台。为虚拟计算或存储服务的公有/私有云,提供可扩展的、灵活的云计算。

OpenStack包含了一组由社区维护的开源项目,主要项目有Compute(Nova), Object Storage(Swift),Image Service(Glance)。

Nova提供虚拟计算服务,Swift提供存储服务,Glance提供虚拟机镜像的注册、分发服务。

他们之间的关系可以用这个简图来表示:

2. OpenStack能够做什么

OpenStack能帮我们建立自己的IaaS,提供类似Amazon Web Service的服务给用户:

普通用户可以通过它注册云服务,查看运行和计费情况

开发和运维人员可以创建和存储他们应用的自定义镜像,并通过这些镜像启动、监控和终止实例

平台的管理人员能够配置和操作网络,存储等基础架构

3. OpenStack Compute(Nova)的软件架构

下图是Nova的软件架构,每个nova-xxx组件是由python代码编写的守护进程,每个进程之间通过队列(Queue)和数据库(nova database)来交换信息,执行各种请求。而用户通过nova-api暴露的web service来同其他组件进行进行交互。Glance是相对独立的基础架构,nova通过glance-api来和它交互。

4. Nova各个组件的作用

nova-api是Nova的中心。它为所有外部调用提供服务,除了提供OpenStack本身的API规范外,他还提供了兼容EC2的部分API,所以也可以用EC2的管理工具对nova进行日常管理。

nova-compute负责对虚拟机实例进行创建、终止、迁移、Resize的操作。工作原理可以简单描述为:从队列中接收请求,通过相关的系统命令执行他们,再更新数据库的状态。

nova-volume管理映射到虚拟机实例的卷的创建、附加和取消。

nova-network从队列中接收网络任务,然后执行任务控制虚拟机的网络,比如创建桥接网络或改变iptables的规则。

nova-scheduler 提供调度,来决定在哪台资源空闲的机器上启动新的虚拟机实例

Queue为守护进程传递消息。只要支持AMQP协议的任何Message Queue Sever都可以,当前官方推荐用RabbitMQ。

SQL database存储云基础架构中的各种数据。包括了虚拟机实例数据,网络数据等。

user dashboard是一个可选的项目。它提供了一个web界面来给普通用户或者管理者来管理、配置他们的计算资源。

5. Nova的硬件架构

Nova采用无共享、基于消息的架构,我们能安装每个nova-xxx组件在单独的服务器上,这样可以根据不同目的进行不同的配置安装

单结点:一台服务器运行所有的nova-xxx组件,同时也驱动虚拟实例。这种配置只为尝试Nova,或者为了开发目的进行安装。

1控制节点+N个计算节点:一个控制结点运行除nova-compute外的所有nova-services,然后其他compute结点运行nova-compute。所有的计算节点需要和控制节点进行镜像交互,网络交互,控制节点是整个架构的瓶颈,这种配置主要用于概念证明或实验环境。

多节点:增加节点单独运行nova-volume,同时在计算节点上运行nova-network,并且根据不同的网络硬件架构选择DHCP或者VLan模式,让控制网络和公共网络的流量分离。

6. OpenStack的安装

OpenStack的安装是比较麻烦,可以参考官方文档进行: http://docs.openstack.org/diablo/openstack-compute/admin/content/ , 文档有一些地方没有更新到最新版本,会遇到一些小问题,推荐一个第3方脚本进行安装:  http://devstack.org/ 它适合用来搭建实验环境。可以通过阅读这个脚本,同时配合官方文档来理解整个软件架构。

同时通过Ubuntu源安装的nova在实际使用过程中遇到一些小问题,都需要打补丁来解决,建议了解整个配置以后,可以改成从git上获取stable分支的代码进行安装,这样日后维护升级也比较方便。

如果你需要从无到有搭建整个数据中心,推荐Crowbar实现自动化远程安装: https://github.com/dellcloudedge/crowbar 从裸机到可用系统只用在web界面点击几下即可完成,还自带各种SA常用功能(比如nagios监控等),不过这个东西也比较复杂,推荐有兴趣的SA们试用。

7. 遇到的问题

官方文档和devstack脚本基本上都是为了搭建实验环境写的,没有为生产环境做最佳实践的指导,在安装过程中遇到很多问题,比如:

A. 多节点部署的时候要用multi host参数

B. 使用VLAN+硬件网关的时候做网络配置时候,需要指定dnsmasq_config_file来强制覆盖dnsmasq的网关配置

C. 用KVM制作windows镜像的时候需要安装virtio驱动

D. 通过Ubuntu源安装的Nova,在Ami格式的镜像启动的instance无法做snapshot,需要打补丁

E. 通过Ubuntu源安装的Nova,在启用keystone进行身份认证的情况下,无法提供EC2的兼容API,也需要打补丁

8. Openstack 的各种资料

A. 官网和wiki http://docs.openstack.org/

B. Devstack的脚本说明,对于了解如何配置各个组件非常有帮助 http://devstack.org/stack.sh.html

C. Rackspace的参考架构,有很多很有用的信息,包括硬件,网络,软件配置等等,强烈推荐: http://www.referencearchitecture.org

D. 看你准备基于什么技术进行虚拟化,KVM或者Xen的文档也是很有用的。

9. 展示

用dashboard管理虚拟机

通过noVNC在web上连接到虚拟机


相关文章

  • 如何用openstack搭建云平台?
  • 阅读本文不是很简单,因为需要知道云计算是什么,什么是私有云,什么是openstack?我们知道openstack可以搭建公有云,私有云.这个显的很神秘.其实本质都是一些操作,如同我们通过使用说明书,能够学会使用一个软件一样.对于私有云在什么 ...查看


  • 烧钱不断的Ubuntu--一个理想主义者的故事
  • 当Mark Shuttleworth在04年成立Canonical--这家Ubuntu背后的公司时,他对所有员工的许诺是个人出资赞助公司两年的运营.但现在十年快过去了,Canonical依然没有盈利. Shuttleworth当年的承诺是让 ...查看


  • 网络应用在节能方面的最新进展
  • 2014级研究生三班 148033022 免疫学 汪悦 计算机技术在生物医学的最新进展 引言 随着计算机技术日新月异的发展,生物医学正迈入大数据时代.不仅 下一代测序分析面临大数据存储与计算的挑战,公共医疗对大数据存 储的需求也日益增长[1 ...查看


  • [京东技术解密]读后感
  • [京东技术] 摘要: 本文是本人阅读<京东技术解密>后整理的重点内容和抒发的一些感想,主观部分纯属个人意见,不必求同 京东技术体系简介 京东技术团队目前有超过4000名员工,2013年市场交易额达到1255亿元,信息系统涵盖交易 ...查看


  • Stackone社区免费的企业级虚拟化与云计算解决方案
  • Stackone免费的企业级虚拟化与云计算解决方案 Stackone社区简介 Stackone是一个开源的项目社区,针对服务器虚拟化.基础设置即服务(Iaas)提供企业级的解决方案.众所周知,虚拟化和云计算是信息化发展的必然趋势,很多企业也 ...查看


  • 第五代移动通信系统关键技术展望
  • doj:10.396刚iSsn 10.O一1247.2015.01.004 姚岳 江苏省通信服务 有限公司 到2020年,移动通信将面临数据的爆炸式增长.终端的海量链接以及超高的流量密度,第五代移动通信技术应 运 而生,首先预测分析了移动通 ...查看


  • Linux系统运维工程师求职简历-魏曼
  • Linux系统运维工程师求职简历 [基本信息] 姓 名:魏曼 性 别:女 年 龄:24 籍 贯:江苏 徐州 学 历:本科 专 业:计算机应用 电 话:[1**********] 邮 箱:[email protected] [求职目标] 应 ...查看


  • 读书报告题目怎么写(共8篇)
  • 篇一:读书报告怎么写 它必须具备两个必要条件: 1.要读书. 具体注意事项: 一. 读书报告有没有一定的格式 二. 写读书报告的第一步 写读书报告的第一步是读书,应一面看书一面写,不论有甚么感想.疑问和见解,都随 三. 不止读一本书 要把一 ...查看


  • JD-2015暑期实习生(1)
  • JD汇总  产品/运营实习生:    如果你是这样的人:  -专业不限,疯狂热爱互联网/移动互联网产品  -乐于迎接挑战,承受较大工作压力  -极佳的团队意识和合作精神  -有趣的.乐观豁达.脱离了低级趣味的   具有以下 ...查看


热门内容