OpenStack概述

来自CloudWiki
跳转至: 导航搜索

OpenStack项目

深度实践OpenStack -基于Python的OpenStack开发

OpenStack的起源

什么是OpenStack

OpenStack是一个开源的云计算管理平台项目,几乎所有类型的云环境。以Python语言编写,整合Tornado 网页服务器、Nebula运算平台,使用Twisted软件框架,并遵循Open Virtualization Format、AMQP、SQLAlchemy等标准,支持的虚拟化技术。提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。通过各种互补的服务提供了基础设施即服务(IaaS)的解决方案,每个服务提供API以进行集成。

O1-112.jpg

OpenStack的起源

Rackspace (一家美国的云计算厂商)和 NASA (美国国家航空航天局)在2010年共同发起了 OpenStack 项目。

那时候 Rackspace 是美国第二大云计算厂商,但规模只能占到亚马逊的5%。只依靠内部的力量来超越或者追赶亚马逊不大可能,这家公司索性就把自己的项目开源了,也就是后来的 openstack 的存储源码( swift )。

与此同时, NASA 也对自己使用的 Eucalyptus 云计算管理平台很不爽。 Eucalyptus 有两个版本,开源版本和收费版本, NASA 想给 Eucalyptus 开源版本贡献 patch ,结果 Eucalyptus 不接受,估计是和收费版本功能重叠了。当时 NASA 的六个开发人员,用了一个星期时间拿 Python 做出来一套原型,结果虚拟机在这上面运行的很成功,这就是 Nova (计算源码)的起源。 NASA 跟 Raskspace 玩的比较好,于是 NASA 贡献 Nova , Raskspace 贡献 swift ,在2010年的7月发起了 OpenStack 项目。

初始的nova包含很多功能,包括管网络和管硬盘等等。

OpenStack的发展

O1-29.png

https://www.openstack.org/foundation/companies/

在经过了长时间的技术积累和市场培养之后,作为开源云计算IaaS的事实标准和最成功的开源社区项目之一,OpenStack在超过80个国家和地区的企业中使用,管理着超过500万个处理器核心,已是当今云服务市场上使用最为广泛的开源平台。。

今年,OpenStack基金会成员数量从去年7月份的4万人猛增到现在的8万左右,分布在全球的180多个国家。在2016年,有3500左右的研发者为OpenStack作出贡献,每隔六个月就会发行和更新新的软件。


据不完全数据统计,OpenStack的用户包括50%的财富100强企业,管理着500万个处理器核心。

如今,采用OpenStack的户越来越多样化,他们来自各种各样的领域,从探索天文,到电信、金融,再到汽车制造业等等,遍布任何一个细分的行业。

OpenStack 由Rackspace 和 NASA 在2010年发起,现在更多用于私有云。

OpenStack的版本演进

OpenStack每个主版本系列都是以字母表顺序命名的,从A-Z,不同版本有变化OpenStack 使用了 YYYY.N 表示法,基于发布的年份以及当时发布的主版本来指定其发布。例如,2011 Bexar的发布的版本号为 2011.1,而Cactus则被标志为 2011.2。Diablo主版本则被标志为2011.3,而Diablo次要版本则用2011.3.1表示~后面加了扩展位 OpenStack每一个版本都纳入了新的功能,添加了文档,并以增量的方式提高部署的简易性,但路线图也增加了组成该计划的项目的数量

O1-35.png

OpenStack社区

  自2010年以来,OpenStack社区一直在构建用于运行云计算基础架构的开源软件。最初,重点是公共云和私有云,但是开放式基础结构已被引入许多新的重要用例中,例如电信,5G和制造物联网。在随后的发展中,容器基础架构、CI/CD以及私有云和混合云等技术也随之出现。

白金会员

O1-30.png

金牌会员

Big1-10.png

基础设施捐赠者

公司赞助商

支持组织

OpenStack项目情况

OpenStack项目体系

https://www.openstack.org/assets/software/projectmap/openstack-map.pdf

O1-31.png

OpenStack内部架构图

O1-34.png

OpenStack流程架构

O1-33.png

OpenStack主要模块

O1-32.png

OpenStack各部分的组织架构

相关概念

OpenStack: 整个云计算网络的操作系统,通过它,我们在数据中心的服务器上建立一个又一个的虚拟机(云主机),并把这些虚拟机提供给客户。

  • 实例:等同于一台虚拟服务器,内含CPU.内存、操作系统、网络配置、磁盘等基础的计算组件。
  • 地域:物理的数据中心。选择靠近客户的地域,可降低网络时延。不同地域的ECS之间内网隔离。资源创建成功后不能更换地域。
  • 可用区:在同一地域内,电力和网络互相独立的物理区域。可用区主要用于故障隔离。同一地域不同可用区的ECS之间内网互通。
  • 镜像:提供实例的操作系统、初始化应用数据及预装的软件。操作系统支持多种Linux发行版本和不同的Windows版本。
  • 网络:专有网络:逻辑上彻底隔离的云上私有网络。您可以自行分配私网IP地址范围、配置路由表和网关等。
  • 安全组:由同一地域内具有相同保护需求并相互信任的实例组成,是一种虚拟防火墙,用于设置实例的网络访问控制。
  • 快照:某一时间点一块云盘的数据状态文件。常用于数据备份、数据恢复和制作自定义镜像等。
  • 块存储:块设备类型产品,具备高性能和低时延的特性。提供基于分布式存储架构的云盘以及基于物理机本地存储的本地盘。

Keystone

Keystone  :对其他模块进行相应操作进行身份及权限验证

(包括Nova,Glance,Cinder,Swift,Neutron,Ceilometer)

O1-36.png

Keystone是Openstack框架中的一个重要组成部分,负责身份认证、服务管 理、服务规则和服务令牌的功能, 它实现了Openstack的Identity API。Keystone类似一个服务总线,或者说是整个Openstack框架的注册表,其他服务通过Keystone来注册其服务,任何服务之间相互 的调用,都需要经过Keystone的身份验证来获得目标服务。

Keystone包含两个主要部件:验证与服务目录。验证部件提供了一套基于令牌的验证服务.服务目录部件(Service Catalog)则提供了一套REST API服务端点列表。[7]

https://www.openstack.org/software/releases/queens/components/keystone

Glance

Glance: 为刚刚建立的虚拟机提供镜像。

O1-37.png

一套虚拟机镜像查找及检索系统, 为 管理员创建的云主机 镜像(尤其是为启动 云主机 实例中所使用的系统磁盘)提供了支持。除了有创建上传镜像、删除镜像、编辑镜像基本信息的功能之外,它还有快照和备份功能。

用户可采用多种格式为服务提供私有和公共镜像,这些格式包括 VHD(Microsoft(® Hyper-V®)、VDI(VirtualBox)、VMDK(VMware)、qcow2(Qemu/基于内核的虚拟机),以及 Open Virtualization Format。Glance 镜像的一大好处就是它可以充当模板,快速并且一致地部署新的服务器。[9][10]

https://www.openstack.org/software/releases/queens/components/glance

Nova

Nova是 OpenStack云计算架构的控制器,负责管理整个云的计算资源、网络、授权及测度。它是用 Python 编写的,创建一个抽象层,让 CPU、内存、网络适配器和硬盘驱动器等服务器资源实现虚拟化,并具有提高利用率和自动化的功能。

O1-38.png

OpenStack云主机实例生命期所需的各种动作都将由Nova进行管理和支撑,根据用户的需求来提高具体的虚拟服务。比如说,虚拟机的的启动、调整大小、挂起、停止和重新引导、迁移、重启、销毁等功能,这些操作通过集成一组受支持的虚拟机管理程序来实现的。还有一个机制可以在计算节点上缓存 虚拟机的镜像,以实现更快的配置。在运行镜像时,可以通过应用程序编程接口(API)以编程方式存储和管理文件。

Nova通过Web服务API来对外提供处理接口,而且这些接口与Amazon的Web服务接口是兼容的。[8][9][10]

https://www.openstack.org/software/releases/queens/components/nova

Neutron

Neutron为刚刚建立的虚拟机提供网络资源及网络连接

O1-39.png

Networking (Neutron) 之前被称为 Quantum,它提供了云计算的网络虚拟化技术,为OpenStack其他服务提供网络连接服务。Neutron,或者说Neutron的前身,设计的初衷,就是为了在分布式环境下面给虚拟机提供网卡,这是它的最基本的要求。此外,Neutron还要虚拟化网络功能的其它元件,比如虚拟交换机,虚拟负载均衡器,虚拟防火墙,虚拟NAT。Neutron要完成的使命是:虚拟化网卡,虚拟化各种网络部件,在虚拟化元件之间互联,把虚拟化和物理网络上打通等。

Neutron具有适用于虚拟局域网(VLAN)、动态主机配置协议和 Internet Protocol 版本 6 的一些功能。用户可以定义网络、子网和路由器,以配置其内部拓扑,然后向这些网络分配 IP 地址和 VLAN。浮动 IP 地址允许用户向 VM 分配(和再分配)固定的外部 IP 地址。配 置DHCP、DNS、负载均衡、L3服务,网络支持GRE、VLAN。插件架构支持许多主流的网络厂家和技术,如OpenvSwitch。 [9][10][11]

https://www.openstack.org/software/releases/queens/components/neutron

Horizon

Horizon:云主机的图形化管理界面

OpenStack中各种服务的Web管理门户,OpenStack中各种服务都可以通过它来进行配置和管理,例如:启动实例、分配IP地址、配置访问控制等。这种图形化、傻瓜式的操作极大地简化了用户的操作,促进了OpenStack的普及。[10]


Swift

OpenStack Object Storage (Swift)

O1-40.png

OpenStack Object Storage (Swift) 以 Rackspace Cloud Files 产品为基础,对于向外扩展的存储来说,它是理想的冗余存储系统。OpenStack 确保了在其池中的所有设备上的数据复制和分发,让用户可以利用商用硬盘和服务器,而不是更昂贵的设备。如果某个组件发生故障,那么 OpenStack 可以将来自其他活动系统的内容补充给新的集群成员。该架构还支持横向扩展,因为它很容易根据需要利用其他服务器来扩展存储集群。

Swift 是一个分布式存储系统,主要用于静态数据,比如 VM 镜像、备份和存档。该软件将文件和其他对象写入可能分布在一个或多个数据中心内的多个服务器上的一组磁盘驱动器,在整个集群内确保数据复制和完整性。

https://www.openstack.org/software/releases/queens/components/swift

Cinder

OpenStack Block Storage (Cinder)

O1-41.png

OpenStack Block Storage (Cinder) 管理计算实例所使用的块级存储。块存储非常适用于有严格性能约束的场景,比如数据库和文件系统。

与 Cinder 配合使用的最常见存储是 Linux 服务器存储,但也有一些面向其他平台的插件,其中包括 Ceph、NetApp、Nexenta 和 SolidFire。云用户可通过仪表板管理他们的存储需求。该系统提供了用于创建块设备、附加块设备到服务器和从服务器分离块设备的接口。另外,也可以通过使用快照功能来备份 Cinder 卷。【9】

https://www.openstack.org/software/releases/queens/components/cinder

其他

Octavia

Cyborg: 管理GPU

Swift:对象存储

Cinder:块存储

Manila: 文件存储,底层:NFS ,SMB

Workload provision

  magnum: 相当于一个市场
  trove:
  sahara:部署hadoop

Orchestration

  Heat( 根据Aodh弹性的增加或减少资源) ,Aodh(报警),Cellometer: 计量

celometer

没有celometer就做不到弹性,

OpenStack的应用

中国移动的OpenStack发展之路

http://mini.eastday.com/a/160714172139171.html

♢ 最大的单集群OpenStack公有云生产环境 (单机房1000节点)

  - 已经正式上线2个集群,共计2000个节点(广州、北京)

♢ 2016年底,建成最大的OpenStack公有云平台之一

   - 到2016年,完成4个集群共计6000个节点规模的公有云建设

银联基于OpenStack的金融私有云建设实践

银联基于OpenStack的金融私有云建设实践 http://www.csdn.net/article/2015-10-06/2825848

银联是金融行业最早介入云计算领域,通过三年云计算落地建设,打造出金融行业第一朵云。截至目前,基于OpenStack建设的私有云已经稳定运行1000多天,平台累计具备了11960vCPU、33280G内存和600TB企业级存储计算力,初步建成了包括云资源管理平台(IaaS)、云集成开发平台(PaaS)、智能支付终端平台(SaaS)等在内的云计算基础平台和应用平台。

中国银联股份有限公司/电子商务与电子支付国家工程实验室。其私有云规模已达1000多台,负责关键生产应用。

腾讯:发力开源社区 推动生态发展

https://blog.csdn.net/tf3fc4gszrguqx94oo7/article/details/78786285

腾讯云TStack作为2017 OpenStack的超级用户,不但在腾讯内部运营着14个集群和超过6000台的物理节点,更是将TStack平台以及运营服务经验推广到了中国政企市场,并与全国15多个省、50多个城市签署合作协议,为包括四川省政务云、广东省政务云、云南公安厅警务云等在内的各级政府和企业构建基于OpenStack的云平台。


腾讯云政务民生总经理罗朝亮在采访中谈到说,其实早期的TStack是完全基于腾讯自研的产品体系来构建的,后来随着OpenStack框架和生态的不断成熟,TStack团队决定将TStack转到主流的OpenStack平台上。事实证明,当初的选择是正确的,无论从大的市场环境、生态的发展和厂商的支持,还是技术平台的完善和行业应用角度衡量,OpenStack都是当今云计算架构的首选。


腾讯云TStack研发团队基于OpenStack做了大量的优化工作,如能上下兼容的SDN、CMDB、IP管理子系统,消息队列调优等等。除了IaaS层的优化,也整合了腾讯内部大量的PaaS能力和SaaS能力,解决实际应用场景问题,比如政企常用到的数据库产品TDSQL、PGXZ,以及大数据平台、AI和LBS等等。


在采访中罗朝亮也强调说,在这一过程中,与业界顶尖企业的合作是成功应用的前提。比如英特尔在计算、存储、网络方面的支持,使得腾讯可以使用到英特尔诸多领先的技术,并且在实验环境完成适配和测试。


最后,罗朝亮表示,腾讯云希望以“感知、支撑、创新、联接”为战略核心,持续推动开源生态和云计算技术发展和在政企市场落地。

华为发力OpenStack背后有哪些商业逻辑

http://shenyao.baijia.baidu.com/article/562915

最新发布的FusionSphere 6.0则全面体现了华为对OpenStack的支持和推动。FusionSphere6.0从组件、架构和生态三个维度全面拥抱开源,为客户提供灵活的软件选择。华为遵循开源社区的各项标准和接口。这样,凡是基于OpenStack开源社区版本开发的第三方应用,无需改动即可在华为云计算平台FusionSphere上运行。此外,基于OpenStack架构的FusionSphere通过统一的OpenStack API支持开放混合云业务,实现从FusionSphere私有云扩展到OpenStack私有/公有云,或者亚马逊公有云。

华为FusionSphere已全部切换到OpenStack http://soft.chinabyte.com/7/13614007.shtml

2017年2月6日] 近日,华为与红帽就公有云及电信云方面展开深度合作发表正式公告,深化了双方关于提供基于OpenStack的解决方案(2014年12月)和运营商级软件定义网络(SDN)解决方案(2016年6月)的合作。这一合作能确保使用红帽Linux系统的企业客户将关键业务平滑迁移至华为公有云平台。

IBM、京东、携程、eBay 的 OpenStack 云

http://www.cnblogs.com/Leo_wl/p/4285628.html

OpenStack的部署工具

RDO项目

RedHat——RDO项目(OpenStackPlatform):Packstack——Puppet

https://www.rdoproject.org/ (一条命令,改改配置文件,就能装操作系统)

RedHat——instack项目

RedHat——instack项目(TripleO项目)https://blog.csdn.net/canxinghen/article/details/40978461

在裸机器上安装openstack

55所--先电

官方文档:Shell脚本部署——iaas-xiandian https://docs.openstack.org

在互联网上安装OpenStack:(含有所有维护的版本)

https://mirrors.aliyun.com/centos/7.5.1804/cloud/x86_64/

Mirantis Fuel

Mirantis Fuel图形化部署(技术细节,不建议大家使用)

Kolla项目

Kolla项目:基于容器的部署和升级(未来要关注,很多商业公司,如科大讯飞采用kolla)


5、今天的任务,通过先电脚本部署一套可用的OpenStack系统

OpenStack相关组件功能的部署过程的简单解读:

基础环境构建:selinux,firewalld,network,hostname,yum,openrc.sh 基础服务构建:ntp,maridb,rabbitmq,http 基础模块构建: keystone,glance,neutron,nova,cinder,swift,ceilometer,heat,trove....

OpenStack搭建过程中,步骤清晰,每个步骤必须要检查,减少步骤数量

首先Linux基础要熟,能看懂脚本,与工程师建立精神联系

控制节点如果装的服务太多,导致内存太多,使得服务宕机(数据库服务需要至少需要128M)

官方配置文档地址(将其作为辅助资料来看)

https://docs.openstack.org/mitaka/zh_CN/install-guide-rdo/keystone-install.html#prerequisites

参考文档:https://note.youdao.com/share/?id=fd92d49b9b6a8b524613d4ef6b17abd3&type=note#/

OpenStack未来趋势

  这几年在云计算领域最火热、发展最迅猛的开源项目包括但不限于OpenStack、Ceph、Docker、Spark以及后起之秀K8S。毫无疑问,云计算是目前最不可阻挡的发展潮流,正在不断地改变传统IDC的结构,逐步取代以昂贵硬件为中心的数据中心,将重新定义计算、存储以及网络。
   根据当前中国用户部署趋势判断,中国公司有可能继续采用开源技术——尤其是 OpenStack、Docker、Kubernetes——作为其IT业务的一部分。假以时日,随着对这种技术的熟悉,开源技术在其IT转变过程中所起的作用会越来越大。