认识OpenStack系统--张炳昱

来自CloudWiki
跳转至: 导航搜索


企业部署云计算服务的模式有三大类:公有云、私有云、混合云。

公有云是云计算服务提供商为公众提供服务的云计算平台,理论上任何人都可以通过授权接入该平台。公有云可以充分发挥云计算系统的规模经济效益,但同时也增加了安全风险。 私有云则是云计算服务提供商为企业在其内部建设的专有云计算系统,私有云系统存在于企业防火墙之内,只为企业内部服务。与公有云相比,私有云的安全性更好,但成本也更高。混合云则是同时提供公有和私有服务的云计算系统,它是介于公有云和私有云之间的一种折中方案。


私有云技术学习路线:

Luxian.png


私有云

基本概念:

私有云(Private Clouds)是为满足一个客户定制化需求而构建的,因此对数据、安全性和服务质量能提供最有效控制。该公司拥有基础设施,并可以控制在此基础设施上部署应用程序的方式。私有云可部署在企业数据中心的防火墙内,也可以将它们部署在一个安全的主机托管场所,私有云的核心属性是专有资源。

--

私有云的优点:

1.数据安全

2.服务质量

3.充分利用现有硬件资源和软件资源

4.不影响现有IT管理的流程

--

私有云平台分类:

1.私有云平台

私有云平台为开发、运行和访问云服务提供平台环境。私有云平台提供编程工具帮助开发人员快速开发云服务,提供可有效利用云硬件的运行环境来运行云服务,提供丰富多彩的云端来访问云服务。

2.私有云服务

私有云服务提供了以资源和计算能力为主的云服务,包括硬件虚拟化、集中管理、弹性资源调度等。

3.私有云管理平台

私有云管理平台负责私有云计算各种服务的运营,并对各类资源进行集中管理。

--

典型的私有云平台:

1.3ACloud

2.OATOS

3.Eucalyptus

4.OpenStack

--

OpenStack是一个开源的云计算管理平台项目,是一系列软件开源项目的组合。由NASA(美国国家航空航天局)和Rackspace合作研发并发起,以Apache许可证(Apache软件基金会发布的一个自由软件许可证)授权的开源代码项目。   OpenStack为私有云和公有云提供可扩展的弹性的云计算服务。项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。



基金会会员

Jjwyh.png


更加详细介绍open stackk

软件库的介绍

Redhat的介绍

百度的介绍



目录

1 简介 Openstack是一个云平台管理的项目,它不是一个软件。这个项目由几个主要的组件组合起来完成一些具体的工作。Openstack是一个旨在为公共及私有云的建设与管理提供软件的开源项目。它的社区拥有超过130家企业及1350位开发者,这些机构与个人将 Openstack作为基础设施即服务资源的通用前端。Openstack项目的首要任务是简化云的部署过程并为其带来良好的可扩展性。本文希望通过提供必要的指导信息,帮助大家利用 Openstack前端来设置及管理自己的公共云或私有云。

Openstack是由 Rackspace和NASA共同开发的云计算平台,帮助服务商和企业内部实现类似于 Amazon ec2和S3的云基础架构服务。Openstack包括两个主要模块:Nova和 Swift。前者是NASA开发的虚拟服务器部署和业务计算模块;后是 Backpack开发的分布式云存储模块,两者可以一起用,也可以分开单独用。 Openstack是开源项目,除了有 Rackspace和NASA的大力支持外,后面还有包括Dell、 Citrix、 Cisco Canonical这些重量级公司的贡献和支持,发展速度非常快,有取代另一个业界领先开源云台 Eucalyptus的态势。


发展趋势

尽管 Open Stack从诞生到现在已经变得日渐成熟,基本上已经能够满足云计算用户的大部分的需求。但随着云计算技术的发展, Open Stack必然也需要不断地完善。Open Stack已经逐渐成为市场上主流的一个云计算平台解决方案。结合业界的一般观点和调查中关于 Open Stack用户的意见,Open Stack需要完善的部分大体上可以归纳为以下几个方面: 

 · (1)增强动态迁移:虽然 Open Stack的Nova组件支持动态迁移,但实质上 Open Stack尚未实现真正意义上的动态迁移。在 Open Stack中因为没有共存储只能做块迁移,共享迁移只能在有共享存储的情况下才被使用。
 · (2)数据安全:安全问题一直是整个云计算行业的问题,尽管 Open Stack中存在对用户身份信息的验证等安全措施,甚至划分出可以单独或合并表征安全信任等级的域,但随着用户需求的变化和发展,安全问题仍然不可小觑。
 · (3)计费和数据监控:随着 Open Stack在公有云平台中的进一步部署,计费和监控成为公有云运营中的一个重要环节。云平台的管理者和云计算服务的提供者必然会进一步开发Open Stack的商业价值。尽管 Open Stack中已经有 Ceilometer计量组件,通过它提供的API接口可以实现收集云计算里面的基本数据和其他信息,但这项工程目前尚处于完善和测试阶段,还需要大量的技术人员予以维护和支持。 

工作流程

Open Stack的各个服务之间通过统一的REST风格的API调用,实现系统的松耦合。它内部组件的工作过程是一个有序的整体。诸如计算资源分配、控制调度、网络通信等都通过AMQP实现。OpenStack的上层用户是程序员、一般用户和 Horizon界面等模块。这三者都是采用 Open Stack各个组件提供的API接口进行交互,而它们之间则是通过AMQP进行互相调用,它们共同利用底层的虚拟资源为上层用户和程序提供云计算服务。Open Stack的各个服务之间通过统一的REST风格的API调用,实现系统的松耦合。它内部组件的工作过程是一个有序的整体。诸如计算资源分配、控制调度、网络通信等都通过AMQP实现。OpenStack的上层用户是程序员、一般用户和 Horizon界面等模块。这三者都是采用 Open Stack各个组件提供的API接口进行交互,而它们之间则是通过AMQP进行互相调用,它们共同利用底层的虚拟资源为上层用户和程序提供云计算服务。

管理流程

OpenStack既然是一个开源的云平台项目,它的主要任务是给用户提供IaaS服务。

 · QEMU

QEMU是一个纯软件的计算机硬件仿真器。通过单独运行QEMU来模拟物理计算机,具有非常灵活和可移植的特点,利用它能够达到使用软件取代硬件的效果。

一般情况下,OpenStack可以部署在Ubuntu的Linux操作系统上,为了进一步提高QEMU的运行效率,往往会增加一个KVM硬件加速模块。KVM内嵌在Linux操作系统内核之中,能够直接参与计算机硬件的调度,这一点是QEMU所不具备的。一般的QEMU程序的执行必然要经过程序从用户态向内核态的转变,这必然会在一定程度上降低效率。所以QEMU虽然能够通过转换对硬件进行访问,但在OpenStack中往往采用KVM进行辅助,使得OpenStack的性能表现得更为良好。 但需要说明的是KVM需要良好的硬件支持,有些硬件本身如果不支持虚拟化的时候,KVM则不能使用。

 · Libvirt

Libvirt是一个开源的、支持Linux下虚拟化工具的函数库。实质上它就是为构建虚拟化管理工具的API函数。Libvirt是为了能够更方便地管理平台虚拟化技术而设计的开放源代码的应用程序接口,它不仅提供了对虚拟化客户机的管理,也提供了对虚拟化网络和存储的管理。

最初的 Libvirt是只针对Xen而设计的一系列管理和调度Xen下的虚拟化资源的API函数,目前高版本的 Libvirt可以支持多种虚拟化方案,包括KVM、QEMU、Xen、 VMware、 VirtualBox等在内的平台虚拟化方案,又支持 Openvz、LXC等 Linux容器虚拟化系统,还支持用户态Linux(UML)的虚拟化,它能够对虚拟化方案中的Hypervisor进行适配,让底层 Hypervisor对上层用户空间的管理工具可以做到完全透明。



核心项目


Openstack架构

OpenStack各个组件之间耦合是非常松的。其中,Keystone是各个组件之间的通信核心,它依赖自身REST(基于Identity API)对所有的OpenStack组件提供认证和访问策略服务,每个组件都需要向Keystone进行注册,主要目的是对云平台各个组件进行认证与授权,对云平台用户进行管理,注册完成后才能获取相对应的组件通信的地址,其中包括通信的端口和Ip地址,然后实现组件之间和内部子服务之间的通信。

Opjg.png


OpenStack覆盖了网络、虚拟化、操作系统、服务器等各个方面。它是一个正在开发中的云计算平台项目,根据成熟及重要程度的不同,被分解成核心项目、孵化项目,以及支持项目和相关项目。每个项目都有自己的委员会和项目技术主管,而且每个项目都不是一成不变的,孵化项目可以根据发展的成熟度和重要性,转变为核心项目。截止到Icehouse版本,下面列出了10个核心项目(即OpenStack服务)。

 ·1、计算(Compute):Nova。一套控制器,用于为单个用户或使用群组管理虚拟机实例的整个生命周期,根据用户需求来提供虚拟服务。负责虚拟机创建、开机、关机、挂起、暂停、调整、迁移、重启、销毁等操作,配置CPU、内存等信息规格。自Austin版本集成到项目中。
 ·2、对象存储(Object Storage):Swift。一套用于在大规模可扩展系统中通过内置冗余及高容错机制实现对象存储的系统,允许进行存储或者检索文件。可为Glance提供镜像存储,为Cinder提供卷备份服务。自Austin版本集成到项目中。
 ·3、镜像服务(Image Service):Glance。一套虚拟机镜像查找及检索系统,支持多种虚拟机镜像格式(AKI、AMI、ARI、ISO、QCOW2、Raw、VDI、VHD、VMDK),有创建上传镜像、删除镜像、编辑镜像基本信息的功能。自Bexar版本集成到项目中。 
 ·4、身份服务(Identity Service):Keystone。为OpenStack其他服务提供身份验证、服务规则和服务令牌的功能,管理Domains、Projects、Users、Groups、Roles。自Essex版本集成到项目中。
 ·5、网络&地址管理(Network):Neutron。提供云计算的网络虚拟化技术,为OpenStack其他服务提供网络连接服务。为用户提供接口,可以定义Network、Subnet、Router,配置DHCP、DNS、负载均衡、L3服务,网络支持GRE、VLAN。插件架构支持许多主流的网络厂家和技术,如OpenvSwitch。自Folsom版本集成到项目中。
 ·6、块存储 (Block Storage):Cinder。为运行实例提供稳定的数据块存储服务,它的插件驱动架构有利于块设备的创建和管理,如创建卷、删除卷,在实例上挂载和卸载卷。自Folsom版本集成到项目中。
 ·7、UI 界面 (Dashboard):Horizon。OpenStack中各种服务的Web管理门户,用于简化用户对服务的操作,例如:启动实例、分配IP地址、配置访问控制等。自Essex版本集成到项目中。
 ·8、测量 (Metering):Ceilometer。像一个漏斗一样,能把OpenStack内部发生的几乎所有的事件都收集起来,然后为计费和监控以及其它服务提供数据支撑。自Havana版本集成到项目中。 
 ·9、部署编排 (Orchestration):Heat。提供了一种通过模板定义的协同部署方式,实现云基础设施软件运行环境(计算、存储和网络资源)的自动化部署。自Havana版本集成到项目中。 
 ·10、数据库服务(Database Service):Trove。为用户在OpenStack的环境提供可扩展和可靠的关系和非关系数据库引擎服务。自Icehouse版本集成到项目中。