设为首页 收藏本站
查看: 1399|回复: 0

[经验分享] OpenStack 各个组件作用

[复制链接]

尚未签到

发表于 2015-10-11 12:02:46 | 显示全部楼层 |阅读模式
  OpenStack产品设计的目标是:实现100万台物理主机,6000万台虚拟主机的管理能力.
  

  在 openstack自动化部署的时候,如果一台机器上所有的openstack服务都装全.大学需要27/28个软件包.
  2014/07月份在OpenStack部署的时候,发现又多了一个python django的软件包.
  下面几行摘自devstack/stackrc文件devstack 需要切换到I版本,后面有默认的分支号.本文章只涉及基础理论知识.
  

# metering service
CEILOMETER_REPO=${CEILOMETER_REPO:-${GIT_BASE}/openstack/ceilometer.git}
CEILOMETER_BRANCH=${CEILOMETER_BRANCH:-stable/icehouse}


# ceilometer client library
CEILOMETERCLIENT_REPO=${CEILOMETERCLIENT_REPO:-${GIT_BASE}/openstack/python-ceilometerclient.git}
CEILOMETERCLIENT_BRANCH=${CEILOMETERCLIENT_BRANCH:-master}


# volume service
CINDER_REPO=${CINDER_REPO:-${GIT_BASE}/openstack/cinder.git}
CINDER_BRANCH=${CINDER_BRANCH:-stable/icehouse}


# volume client
CINDERCLIENT_REPO=${CINDERCLIENT_REPO:-${GIT_BASE}/openstack/python-cinderclient.git}
CINDERCLIENT_BRANCH=${CINDERCLIENT_BRANCH:-master}


# image catalog service
GLANCE_REPO=${GLANCE_REPO:-${GIT_BASE}/openstack/glance.git}
GLANCE_BRANCH=${GLANCE_BRANCH:-stable/icehouse}


# python glance client library
GLANCECLIENT_REPO=${GLANCECLIENT_REPO:-${GIT_BASE}/openstack/python-glanceclient.git}
GLANCECLIENT_BRANCH=${GLANCECLIENT_BRANCH:-master}


# heat service
HEAT_REPO=${HEAT_REPO:-${GIT_BASE}/openstack/heat.git}
HEAT_BRANCH=${HEAT_BRANCH:-stable/icehouse}


# python heat client library
HEATCLIENT_REPO=${HEATCLIENT_REPO:-${GIT_BASE}/openstack/python-heatclient.git}
HEATCLIENT_BRANCH=${HEATCLIENT_BRANCH:-master}


# django powered web control panel for openstack
HORIZON_REPO=${HORIZON_REPO:-${GIT_BASE}/openstack/horizon.git}
HORIZON_BRANCH=${HORIZON_BRANCH:-stable/icehouse}


# baremetal provisionint service
IRONIC_REPO=${IRONIC_REPO:-${GIT_BASE}/openstack/ironic.git}
IRONIC_BRANCH=${IRONIC_BRANCH:-stable/icehouse}


# ironic client
IRONICCLIENT_REPO=${IRONICCLIENT_REPO:-${GIT_BASE}/openstack/python-ironicclient.git}
IRONICCLIENT_BRANCH=${IRONICCLIENT_BRANCH:-master}


# unified auth system (manages accounts/tokens)
KEYSTONE_REPO=${KEYSTONE_REPO:-${GIT_BASE}/openstack/keystone.git}
KEYSTONE_BRANCH=${KEYSTONE_BRANCH:-stable/icehouse}


# python keystone client library to nova that horizon uses
KEYSTONECLIENT_REPO=${KEYSTONECLIENT_REPO:-${GIT_BASE}/openstack/python-keystoneclient.git}
KEYSTONECLIENT_BRANCH=${KEYSTONECLIENT_BRANCH:-master}


# compute service
NOVA_REPO=${NOVA_REPO:-${GIT_BASE}/openstack/nova.git}
NOVA_BRANCH=${NOVA_BRANCH:-stable/icehouse}


# python client library to nova that horizon (and others) use
NOVACLIENT_REPO=${NOVACLIENT_REPO:-${GIT_BASE}/openstack/python-novaclient.git}
NOVACLIENT_BRANCH=${NOVACLIENT_BRANCH:-master}


# consolidated openstack python client
OPENSTACKCLIENT_REPO=${OPENSTACKCLIENT_REPO:-${GIT_BASE}/openstack/python-openstackclient.git}
OPENSTACKCLIENT_BRANCH=${OPENSTACKCLIENT_BRANCH:-master}


# cliff command line framework
CLIFF_REPO=${CLIFF_REPO:-${GIT_BASE}/openstack/cliff.git}
CLIFF_BRANCH=${CLIFF_BRANCH:-master}


# oslo.config
OSLOCFG_REPO=${OSLOCFG_REPO:-${GIT_BASE}/openstack/oslo.config.git}
OSLOCFG_BRANCH=${OSLOCFG_BRANCH:-master}


# oslo.messaging
OSLOMSG_REPO=${OSLOMSG_REPO:-${GIT_BASE}/openstack/oslo.messaging.git}
OSLOMSG_BRANCH=${OSLOMSG_BRANCH:-master}


# oslo.rootwrap
OSLORWRAP_REPO=${OSLORWRAP_REPO:-${GIT_BASE}/openstack/oslo.rootwrap.git}
OSLORWRAP_BRANCH=${OSLORWRAP_BRANCH:-master}


# oslo.vmware
OSLOVMWARE_REPO=${OSLOVMWARE_REPO:-${GIT_BASE}/openstack/oslo.vmware.git}
OSLOVMWARE_BRANCH=${OSLOVMWARE_BRANCH:-master}


# pycadf auditing library
PYCADF_REPO=${PYCADF_REPO:-${GIT_BASE}/openstack/pycadf.git}
PYCADF_BRANCH=${PYCADF_BRANCH:-master}


# stevedore plugin manager
STEVEDORE_REPO=${STEVEDORE_REPO:-${GIT_BASE}/openstack/stevedore.git}
STEVEDORE_BRANCH=${STEVEDORE_BRANCH:-master}


# taskflow plugin manager
TASKFLOW_REPO=${TASKFLOW_REPO:-${GIT_BASE}/openstack/taskflow.git}
TASKFLOW_BRANCH=${TASKFLOW_BRANCH:-master}


# pbr drives the setuptools configs
PBR_REPO=${PBR_REPO:-${GIT_BASE}/openstack-dev/pbr.git}
PBR_BRANCH=${PBR_BRANCH:-master}


# neutron service
NEUTRON_REPO=${NEUTRON_REPO:-${GIT_BASE}/openstack/neutron.git}
NEUTRON_BRANCH=${NEUTRON_BRANCH:-stable/icehouse}


# neutron client
NEUTRONCLIENT_REPO=${NEUTRONCLIENT_REPO:-${GIT_BASE}/openstack/python-neutronclient.git}
NEUTRONCLIENT_BRANCH=${NEUTRONCLIENT_BRANCH:-master}


# consolidated openstack requirements
REQUIREMENTS_REPO=${REQUIREMENTS_REPO:-${GIT_BASE}/openstack/requirements.git}
REQUIREMENTS_BRANCH=${REQUIREMENTS_BRANCH:-stable/icehouse}


# storage service
SWIFT_REPO=${SWIFT_REPO:-${GIT_BASE}/openstack/swift.git}
SWIFT_BRANCH=${SWIFT_BRANCH:-stable/icehouse}
SWIFT3_REPO=${SWIFT3_REPO:-${GIT_BASE}/stackforge/swift3.git}
SWIFT3_BRANCH=${SWIFT3_BRANCH:-master}


# python swift client library
SWIFTCLIENT_REPO=${SWIFTCLIENT_REPO:-${GIT_BASE}/openstack/python-swiftclient.git}
SWIFTCLIENT_BRANCH=${SWIFTCLIENT_BRANCH:-master}


# Tempest test suite
TEMPEST_REPO=${TEMPEST_REPO:-${GIT_BASE}/openstack/tempest.git}
TEMPEST_BRANCH=${TEMPEST_BRANCH:-master}




# diskimage-builder
DIB_REPO=${DIB_REPO:-${GIT_BASE}/openstack/diskimage-builder.git}
DIB_BRANCH=${DIB_BRANCH:-master}


# a websockets/html5 or flash powered VNC console for vm instances
NOVNC_REPO=${NOVNC_REPO:-https://github.com/kanaka/noVNC.git}
NOVNC_BRANCH=${NOVNC_BRANCH:-master}
  

  OpenStack有不少核心和扩展的项目,主要由以下几个子系统构成
  1 对象存储(ObjectStoragte)的系统名称Swift,对应亚马逊的S3,通过简单key/value的方式实现对象文件的存储读取,适用于"一次写入,多次读取, 无需修改"
  图片,视频,邮件附件等海量数据的存储.对象存储俗称 云存储
  2 镜像管理(Image)系统名称glance)提供虚拟磁盘镜像的目录分类管理以及镜像库存储管理,用于OpenStack虚拟机
  3 计算管理(Compute)系统名称Nova)提供虚拟主机,对应亚马逊的EC2 包括虚拟机,弹性云磁盘等服务。通过虚拟化技术,KVM,Xen, VMware Esxi等实现计算,网络,存储等资源池的构建及应用,
  4网络管理(Network)(系统名称nova-network和Quantum)实现了虚拟机的网络资源管理,包括网络连接,子网IP管理, L3的公网映射,后续的负载均衡等。 
  5块存储(Block Storage)(nova-volume和Cinder)实现了对块存储的管理,与EBS弹性云磁盘类似,为虚拟机提供块服务
  6认证管理(keystone)为OpenStack所有的系统提供同一的授权和身份验证服务。
  7界面展示(horizon)是基于OpenStack API接口开发的Web呈现。 
  

  以下为各模块的作用
  1Nova
  
 这个是最核心的,从Essex版本后,Nova开始做减法,和网络相关的内容,包括安全组,交给Quantum(neutron)负责,存储相关的交给Cinder负责。调度有关的内容,   会交给新的项目Marconi
 以前还有一个nova common,这其实是各个组件都使用相同的东西,现在也专门成立一个项目:oslo,已经是核心项目。
 未来Nova对各种Hyperv的支持是有差异的,KVMXEN,基本是最好的。微软的Hyper-V算是很不错,微软投入再研发。就是未来计算节点,不直接查询数据库,而是通   过rpc的方式.Nova的稳定性,其实取决于libvirtqemu,希望未来可以能更加稳定。更深一层需要同Linux内核打交道.
keystone
   这是提供身份认证和授权的组件。任何系统,身份认证和授权,其实都比较复杂。尤其Openstack 那么庞大的项目,每个组件都需要使用统一认证和授权。
   目前keystone 要做的东西其实还是很。没法基于角色的授权,web管理用户等。当然你如果希望实现使用动态令牌认证,多因素认证,LDAP集成,这都是未来版本需   要实现的功能,这些功能都已经在计划中。
   目前好像要实现keystone的高可用,还是比较困难,这个就让社区慢慢解决吧。大规模部署,这也会是瓶颈。
   前段时间在大规模自动化部署openStack的时候遇到很多与keystone有关的问题.这需要修改源代码
  3glance
  镜像管理支持本地存储,NFS, swift, sheepdog和Ceph, 
  4Quantum,
  目前开发进度不是太如人意,nova 开发组目前用的最多的是n-net.开源产品支持Openvswitch和linux bridge
  5 cinder:存储管理的组件
  6 Lbass
  实现负载均衡的项目,目前集成在了网络部分。 
  7horizon
  大家所看见的能访问的页面。 
  8swift
  对象存储的组件。
  9oslo
  把所有组件需要用到相同的东西,集中起来,
  10 Ceilometer
  这是实现监控和计量的组件。能够在Dashboard里看到这个组件。
  11 Heat
  解决虚拟机的软件部署的问题。http://zhenhua2000.blog.iyunv.com/3167594/1324918/
  
  12 MARCONI
  解决openstack消息队列的扩展问题。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-125409-1-1.html 上篇帖子: CentOS6.2下一步一步源代码安装OpenStack(一)操作系统准备 下篇帖子: OpenStack install for RedHAT linux(概述)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表