分享

openstack学习之openstack介绍

pig2 发表于 2014-5-8 18:11:35 [显示全部楼层] 只看大图 回帖奖励 阅读模式 关闭右栏 2 12775
问题导读:
1.openstack的安全组件都是什么?
2.openstack为什么被比作 一个工厂?
3.openstack为什么至少部署一个控制节点?
4.控制节点主要包含哪些服务?
5.rabbitmq是用来做什么的?
6.nova controller node收到一个创建instance的请求时,是如何进行调度的?







近几年来,云计算成为IT行业的热门话题,无论是企业或者技术人员,要始终站在计算机行业的前沿,Cloud已经成为一个绕不开的话题,而国内外知名企业对Cloud Computing的关注度和参与度也与日俱增,IBM, Inter, HP, DELL等知名企业先后宣布自己的Cloud产品和研发计划,Amason,goolge,Apple的企业业已形成自己的成熟的产品和客户群,在国内,云计算项目也风生水起,腾讯云,百度云,阿里云等相关资讯不断闯入我们的视野,也有许多中小企业也迫不及待的加入云计算行业的大军当中。当然,尽管对Cloud研究的着力点和技术方向上存在着一定得差距,可以预料的是,未来十年,云计算技术必将得到更为成熟的发展和广泛的应用。

     在Cloud领域里,比较知名和成熟的有Amazon的EC2,  Microsoft 的Azure,Google 的Google apps以及Apple的icloud等,这些产品都在相关领域取得了不菲的成绩,也想业界昭示了Cloud的光辉前景。相比较而言,openstack可谓Cloud领域的一个新兵,从诞生在现在不过是近三年的时间,不过由于其授权开源社区开发,吸引了众多的开发者和相关领域的公司积极参与,因而发展势头迅猛,大有后发先至之势,时至今日,已经成为Cloud领域最知名的产品之一。

    至于说openstack的功能,如果把整个openstack环境看做是一个工厂的话(母工厂),这个工厂负责收集、管理、调度多个厂区的资源,进行合理的分配,然后完成这个强大的工厂的核心功能...生产新的工厂(子工厂)!有了这些子工厂,用户就可以用它们根据需要定制自己的工厂了,这可以看做是对Cloud computing Iaas模式的通俗化理解。

    openstack用python语言开发,充分利用了python语言的灵活性和面向对象属性,主要模块包括:keyston, glance, nova, nova-dashboard, quantem, storing等。以下对各个模块进行简要的说明。

    keystone:  openstack的认证服务,用以管理云系统的user,project(tenant),role等,可看做是母工厂的安全部门(关于user, project, role的关系,请参考后续文章);

    glance:openstack的镜像服务,用于管理云操作系统的安装镜像文件(qcow2, img等),可看做母工厂的制造部门和库房,工作人员(管理员)可以根据需要制造子工厂的模型,然后放入库房供以后使用;

    nova: openstack 的 compute服务, 核心模块,可谓openstack的控制部门,可看做是工厂的决策层;

    nova-dashboard: openstack 的管理工具,供管理人员使用。可以看做工厂给管理员提供的强大的管理工具,理论上如果被任命为工厂的高级管理员(CEO),则可以用这个工具可以做你想做的一切;如果被任命为一般管理员(中层干部),则只能做职权范围内的管理工作。管理员的任命要结合keystone来完成,keystone负责记录管理员的相关信息,包括name,project, role等。nova-dashboard基于python django framework开发,在某些地方,nova-dashboard又称作Horizon,在nova dashboard代码内部,horizon其实是nova-dashboard 的 django app 的名字。

    quantem: openstack的network服务;可以看做工厂内各部门以及各子工厂之间的联系人网络。与一般工厂的联系人网络不同的是,这个网络架构单独可以看做这个工厂的产品(Saas)。

    storing: openstack storage 服务,分为object-storage服务swift和block-storage服务两种;可以看做工厂某种特殊资源的生产部门,正是由于这个资源的特殊性,所以需要一个特别的部门来生产;

    一个部署完成的openstack CLOUD如下图所示(来自www.openstack.org):
Quantum-PhysNet-Diagram.png
     其中,controller node是openstack的管理节点。每个openstack环境需要部署至少一个(通常也是一个)独立controller节点;controller提供上述除了quantem之外的所有服务,主要包括:database(postgresql或mysql),rabbitmq(nova用它来调度任务),keystone, nova(nova-compute除外,需要在其他的node上提供该服务), glance,nova-dashboard等。

    nova network node提供上述的quantem服务,可以是多个节点,似乎也可以运行在controller node上;

    nova compute node是生成的子工厂(instance)的宿主,通常与nova-network node 共存,不能在controller node上。nova compute node是nova controller node控制的一个计算机池,当nova controller node收到一个创建instance的请求时,通过rabbitmq和nova schedule进行调度,选定一个compute node作为instance的宿主,安装、启动instance,整个工程都会自动进行,不需要人为干预。

    controller node 控制着整个openstack Cloud 环境的整体的运行,可谓整个CLOUD环境的命脉,一旦controller node崩溃,整个Cloud也将不复存在。
    由于storage是CLOUD领域乃至计算机领域都是重要的概念和资源,所以还可以部署单独的storage node,这些node构成storage pool, controller node可从中取得storage为各个instance使用。

随便说说


已有(2)人评论

跳转到指定楼层
蜈蚁蝗 发表于 2014-5-29 14:32:08
回复

使用道具 举报

rbi 发表于 2014-8-1 11:16:14
回复

使用道具 举报

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

本版积分规则

关闭

推荐上一条 /2 下一条