8.1.1 OpenStack简介

(1)OpenStack的认识

OpenStack是当今互联网上热门的开源云平台管理项目之一。企业与个人用户可以通过官方文档指导搭建OpenStack私有云,使管理员通过仪表板调度整个数据中心计算、网络和存储资源的大型资源池。

OpenStack的主要功能是管理数据中心的虚拟化资源。它们分别是:

  • 计算资源:OpenStack不提供虚拟化功能,通过计算节点上KVM的虚拟化,使得OpenStack可以调度其资源部署并管理数量众多的实例。其次管理员可以通过dashboard查看和使用其计算资源的使用情况和剩余空间,更大化利用资源。

  • 存储资源:OpenStack为企业云端服务提供了不同的存储模式,如glance组件提供了实例镜像存储服务,cinder提供了块设备存储服务,swift提供了对象对象存储服务。传统单机存储已经不能保证数据的安全性和完整性,多样的存储分类让企业可以在云端更多样性、安全的存储数据。

  • 网络资源:OpenStack为企业云服务提供提供API以构建丰富的网络拓扑,并在云中配置高级网络策略。如今数据中心机房大量的网络硬件设备划分成虚拟虚拟网络,导致了IP地址数量暴增、路由配置淆乱、安全规则爆炸式增长。OpenStack的网络规则及IP管理,使得管理员来最大限度地管理网络资源。

(2)OpenStack架构

OpenStack项目是很多开源组件构成的云计算平台,每一个组件提供不同的服务,每个服务又提供应用程序编程接口促进了这种集成。根据项目需求,用户可以按照官方文档安装介绍选择部分或全部服务。下面对 OpenStack 主要五大基础服务模块进行一一介绍:

  • 计算组件Nova

    Nova是云端中计算资源的控制中心,实例生命周期的一切活动都是由nova组件负责处理的。但实际上需要知道,nova本身并没有虚拟化的功能,其实现方式通常是计算节点上的libvirt API实现的。如今OpenStack已经支持多种虚拟化形式,如KVM,Xen, VMware vSphere和Hyper-V等等。Nova的主要核心服务有API、Compute、Conductor、Scheduler。nova-api负责虚拟机生命周期的操作,nova-scheduler实现控制在哪个计算节点上启动实例,nova-conductor主要是防止云端上计算节点直接访问数据库。计算节点上的nova-compute来完成供给实例计算资源。

8-1-1
  • 镜像主件Glance

    Glance服务主要是上传、创建、检索、删除虚拟机实例的镜像文件。需要注意的一点是,在向Glance添加镜像时,必须指定虚拟机的磁盘格式和容器模式,在本文中使用了qcow2的磁盘格式和bare容器格式,下面来介绍一下常见的磁盘格式和Glance主要构件。

磁盘格式

raw

原始磁盘格式,是硬盘出厂时的原始格式

vhd

VMware,Xen,微软,VirtualBox等虚拟机监视器使用的常见磁盘格式

vmdk

这是VHDX磁盘格式,vhd格式的增强版本,支持更大的磁盘大小

vdi

VirtualBox虚拟机监视器和QEMU模拟器支持的磁盘格式

qcow2

QEMU模拟器支持的磁盘格式,支持动态扩展并支持写入复制

ploop

Virtuozzo支持并用于运行OS容器的磁盘格式

iso

光盘数据内容的存档格式(例如 Cdrom)

aki

Glance中存储的是Amazon内核映像

ari

Glance中存储的是Amazon ramdisk映像

ami

Glance中存储的是Amazon机器映像

Glance主要有两个构件,一个是Glance-API服务进程,主要功能处理和存储镜管理的Restful请求,响应镜像查询、获得和存储的调用。默认绑定端口是9292。另外一个是Glance-Registry服务进程,主要负责处理和存储镜像元数据的Restful请求,例如镜像的大小和类型调用。默认绑定的端口是9191。

8-1-2
  • 认证组件keystone Keystone在OpenStack中如同“钥匙”,它在云端中提供令牌认证和策略访问服务的作用,通过生成允许访问身份验证令牌,项目中的用户如admin通过将其有效凭证提供给认证服务来获取该令牌和其他服务API的URL端点。身份认证请求的主体必须包含指定内容验证方法的有效内容,官方上指定的验证方法有两种,一种是password,另一种是token。本文使用的是fernet token,信息包负载数据,并用Crypto.encrypt对其对称加密,使得设计的逻辑序列化,且负载均衡得到控制。另外可用端点URL访问服务,在OpenStack组件中如果需要访问一个服务,必须知道其端点。不同的组件服务有不同的服务访问地址,而且使用的权限也会有所不同。

  • Dashboard组件Horizon 作为私有云云端用户,可以使用OpenStack仪表盘在web控制面板中,配置自己的资源。另外还可以创建、修改、查看、删除实例、镜像文件、ssh密钥对、存储卷、网络等功能。 通过输入管理员账号和密码登陆到仪表盘中,在左边能直观看到项目、管理员、身份,设置四大选项卡,项目是OpenStack云中的组织账号,每个用户都是一个或多个项目成员。在项目选项卡可以访问项目的概述、查看,创建,编辑,导入和删除实例、镜像、密钥对等作用。在管理选项卡下可以查看主机聚合摘要,查看、创建、编辑、删除实例、卷、Flavors、网络等作用。在身份选项卡中,可以查看、创建、分配、删除用户和项目。在设置选项卡中可以查看和管理仪表盘设置已经更改用户使用密码。通过使用仪表盘工具,能够进行最直观简单的交互web界面,使得管理员快速入门管理整个OpenStack架构。

  • 网络组件neutron Neutron在OpenStack云端上能对实例提供网络、子网和路由器抽象功能,提供了对云端上网络的网络拓扑,负责管理内网和外网的通讯、管理虚拟机网络之间的通信、虚拟机上防火墙的设置等等。在计算节点中,neutron构建插入Openstack租户网络的高级网络服务,为每个用户提供独立的网络环境。同时在Horizon上支持创建和删除子网、路由、端口配置,使得网络配置更加具有条理性。

OpenStack的发展趋势

如今Openstack开始渐渐追赶虚拟化商业巨头VMware、citrix、微软的步伐。如下图所示,通过2017年Openstack和其他云项目的部署情况对比图。可以发现越来越多的使用者拥抱开源,已经在使用或计划使用OpenStack搭建私有云。

8-1-3

OpenStack项目的使用公司众多,通过查看官方主页上使用公司列表,国外有redhat,intel,cisco,IBM等企业,国内有华为,新华三,EasyStack等。众多的世界排名企业都纷纷开始了OpenStack云架构的竞赛中,使得项目发展迅速,稳定成熟,广泛的运用在互联网各个行业中。

8-1-4

众多的开发者活跃在OpenStack社区上,使得社区发帖量、回复量、问题处理速度等极速上升,在选择开源项目时,管理者主要聚焦与技术指标,比如性能、可靠性、功能等方案,OpenStack致力于一个开放式的设计过程,定时收集企业项目、开发者、普通用户的意见指定版本发展线路,时间频率是是每半年一次。

8-1-5