基于Openstack的私有云搭建实践1——概述、原理与整体规划

1 目标:将所有的功能都抽象为服务,通过网络接口提供给用户使用。

云计算(cloud computing)是基于互联网的相关服务的增加、使用和交付模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源。

云是网络、互联网的一种比喻说法。过去在图中往往用云来表示电信网,后来也用来表示互联网和底层基础设施的抽象。因此,云计算甚至可以让你体验每秒10万亿次的运算能力,拥有这么强大的计算能力可以模拟核爆炸、预测气候变化和市场发展趋势。用户通过电脑、笔记本、手机等方式接入数据中心,按自己的需求进行运算。

简单来说,就是把应用程序和数据都放在由大量服务器组成的云中,用户需要什么只要购买相应服务并使用即可。

云计算分为私有云、公有云、混合云。

云计算的服务分类:基础设施即服务、平台即服务、软件即服务。

特点:

超大规模。“云”具有相当的规模,Google云计算已经拥有100多万台服务器,亚马逊、IBM、微软和Yahoo等公司的“云”均拥有几十万台服务器。“云”能赋予用户前所未有的计算能力。

虚拟化。云计算支持用户在任意位置使用各种终端获取服务。所请求的资源来自“云”,而不是固定的有形的实体。应用在“云”中某处运行,但实际上用户无需了解应用运行的具体位置,只需要一台笔记本或一个PDA,就可以通过网络服务来获取各种能力超强的服务。

高可靠性。“云”使用了数据多副本容错、计算节点同构可互换等措施来保障服务的高可靠性,使用云计算比使用本地计算机更加可靠。

通用性。云计算不针对特定的应用,在“云”的支撑下可以构造出于变万化的应用,同一片“云”可以同时支撑不同的应用运行。

高可伸缩性。“云”的规模可以动态伸缩,满足应用和用户规模增长的需要。

按需服务。“云”是一个庞大的资源池,用户按需购买,像自来水、电和煤气那样计费。

极其廉价。“云”的特殊容错措施使得可以采用极其廉价的节点来构成云;“云”的自动化管理使数据中心管理成本大幅降低;“云”的公用性和通用性使资源的利用率大幅提升;“云”设施可以建在电力资源丰富的地区,从而大幅降低能源成本。

2 OpenStack

OpenStack是一个开源的云计算管理平台项目,由几个主要的组件组合起来完成具体工作。OpenStack支持几乎所有类型的云环境,项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。OpenStack通过各种互补的服务提供了基础设施即服务(IaaS)的解决方案,每个服务提供API以进行集成。常见组件:

Dashboard(web控制台,又名Horizon)

Keystone(权限管理,为各组件提供认证和授权功能)

Nova(管理虚拟机)

Nova-network(Neutron,管理网络流量和ip)

Glance(镜像管理,提供装机镜像)

Cinder(磁盘管理,云盘)

Swift(网盘,对象存储)

基于Openstack的私有云搭建实践1——概述、原理与整体规划_第1张图片

打开百度APP,查看更多高清图片

OpenStack组件介绍

虚拟机创建步骤

基于Openstack的私有云搭建实践1——概述、原理与整体规划_第2张图片

openstack组件架构图

1) 登录界面或命令行通过RESTful API向keystone获取认证信息。

2) keystone通过用户请求认证信息,并生成auth-token返回给对应的认证请求。

3) 界面或命令行通过RESTful API向nova-api发送一个boot instance的请求(携带auth-token)。

4) nova-api接受请求后向keystone发送认证请求,查看token是否为有效用户和token。

5) keystone验证token是否有效,如有效则返回有效的认证和对应的角色(注:有些操作需要有角色权限才能操作)。

6) 通过认证后nova-api和数据库通讯。

7) 初始化新建虚拟机的数据库记录。

8) nova-api通过rpc.call向nova-scheduler请求是否有创建虚拟机的资源(Host ID)。

9) nova-scheduler进程侦听消息队列,获取nova-api的请求。

10) nova-scheduler通过查询nova数据库中计算资源的情况,并通过调度算法计算符合虚拟机创建需要的主机。

11) 对于有符合虚拟机创建的主机,nova-scheduler更新数据库中虚拟机对应的物理主机信息。

12) nova-scheduler通过rpc.cast向nova-compute发送对应的创建虚拟机请求的消息。

13) nova-compute会从对应的消息队列中获取创建虚拟机请求的消息。

14) nova-compute通过rpc.call向nova-conductor请求获取虚拟机消息。(Flavor)

15) nova-conductor从消息队队列中拿到nova-compute请求消息。

16) nova-conductor根据消息查询虚拟机对应的信息。

17) nova-conductor从数据库中获得虚拟机对应信息。

18) nova-conductor把虚拟机信息通过消息的方式发送到消息队列中。

19) nova-compute从对应的消息队列中获取虚拟机信息消息。

20) nova-compute通过keystone的RESTfull API拿到认证的token,并通过HTTP请求glance-api获取创建虚拟机所需要镜像。

21) glance-api向keystone认证token是否有效,并返回验证结果。

22) token验证通过,nova-compute获得虚拟机镜像信息(URL)。

23) nova-compute通过keystone的RESTfull API拿到认证k的token,并通过HTTP请求neutron-server获取创建虚拟机所需要的网络信息。

24) neutron-server向keystone认证token是否有效,并返回验证结果。

25) token验证通过,nova-compute获得虚拟机网络信息。

26) nova-compute通过keystone的RESTfull API拿到认证的token,并通过HTTP请求cinder-api获取创建虚拟机所需要的持久化存储信息。

27) cinder-api向keystone认证token是否有效,并返回验证结果。

28) token验证通过,nova-compute获得虚拟机持久化存储信息。

29) nova-compute根据instance的信息调用配置的虚拟化驱动来创建虚拟机。

3 原理

用户通过网络端请求软件服务。软件在网络平台开发,使用平台提供的基本功能服务。网络平台使用网络底层存储、计算资源等基本硬件功能服务,使用基础设置提供的服务。基础设施层使用存储、安全等服务和硬件构建基础功能。

XaaS概念,X as a Service

S层:software

P层:platform

I层:infrastructure

参考:http://chuansong.me/n/147623

4 整体规划

基于Openstack的私有云搭建实践1——概述、原理与整体规划_第3张图片

举报/反馈

你可能感兴趣的:(大数据与云计算,云计算,云平台,私有云,云服务,OpenStack)