项目一
任务一 了解云计算
目前主流的开源云计算平台如下:
OpenStack。OpenStack是一个提供IAAS开源解决方案的全球性项目,由Rackspace公司和NASA共同创办,采用了Apache2.0许可证,可以随意使用。OpenStack并不要求使用专门的硬件和软件,可以在虚拟系统或裸机系统中运行。它支持多种虚拟机管理器(KVM和XenServer)和容器技术。OpenStack适应不同的用户,既面向为客户部署IAAS的服务提供商,又面向为项目团队和各部门提供私有云服务的企业IT部门。
OpenNebula。
Eucalyptus。
CloudStack。
任务二 了解OpenStack项目
2010年7月,Rackspace公司和NASA合作,分别贡献出Rackspace公司云文件平台代码和NASA Nebula平台代码,并以Apache许可证开源发布了OpenStack,OpenStack由此诞生。经过几年的发展,OpenStack已成为业内领先的开源项目,是能提供部署私有云和公有云的一个操作平台和一套工具集。目前OpenStack已得到了广泛应用,并且在许多大型企业中支撑核心生产业务。要应用OpenStack,首先需要对OpenStack项目有总体的了解。
什么是OpenStack
Open意为开放,Stack意为堆栈或堆叠,OpenStack是一系列开源软件项目的组合。OpenStack是目前非常流行的开源云操作系统,同时也是基础设施资源的系统管理平台。
OpenStack用于对数据中心的计算、存储和网络资源进行统一管理,提供IT基础设施服务。OpenStack可以作为虚拟机、裸金属服务器和容器等的云基础架构和基础设施平台。
在OpenStack中,所有的管理任务都可以通过API来实现,并使用通用的身份认证机制。云管理员可以使用OpenStack提供的仪表盘来实现管理和控制,最终用户可以被授权通过Web图形界面部署和使用资源。除了标准的IAAS功能外,OpenStack还提供额外的组件来实现编排、故障管理和服务管理等功能,以保证用户应用的高可用性。
OpenStack秉承可扩展的设计理念,整个OpenStack项目是由众多相互独立的项目组成的,每个项目都有自己的代号或名称,由一系列进程、命令行脚本、数据库和其他脚本组成。项目之间相互关联,用于协同管理各类计算、存储和网络资源,以提供云计算服务。
OpenStack最初仅包括Nova和Swift两个项目,现在已经有数十个项目。OpenStack项目的构成,部分核心项目的构成如下。
1.仪表盘:项目代号Horizon,提供一个基于Web的自服务门户,让用户和运维人员最终都可以通过它与OpenStack服务交互来完成大多数的云资源操作,如启动虚拟机、分配ip地址、动态迁移等。
2.计算服务:项目代号为Nova,部署和管理虚拟机并为用户提供虚拟机服务。它管理OpenStack环境中计算实例的生命周期,按需响应包括生成、调度、回收虚拟机等操作。
3.网络:项目代号为Neutron,为其他OpenStack服务提供网络连接服务,为用户提供API定义网络和接入网络,允许用户创建自己的虚拟网络并连接各种网络设备接口。
4.对象存储:项目代号为Swift,通过REST API存储或检索对象(文件),以低成本的方式管理大量非结构化数据。
5.块存储:项目代号为Cinder,为运行虚拟机提供持久性块存储服务。它的可插拔驱动架构的功能有助于创建和管理块存储设备。
6.身份服务:项目代号为Keystone,为所有OpenStack服务提供身份认证和授权。
7.镜像:项目代号为Glance,主要提供虚拟机镜像的存储、查询和检索服务。Glance通过提供一个虚拟磁盘镜像的目录和存储库,为Nova的虚拟机提供镜像服务。
任务三 理解OpenStack架构
OpenStack是各类云的开源云计算平台,具有实现简单、可扩展性强和功能丰富的优点。
1.OpenStack的设计基本原则
OpenStack作为一个开源、可扩展、富有弹性的云操作系统,其架构设计主要参考了Amazon的AWS云计算产品,底层基础为模块的划分和模块间的功能协作,其设计的基本原则如下。
· 按照不同的功能并根据通用性划分项目,拆分子系统。
· 按照逻辑,计划并规范子系统之间的通信。
· 分层设计整个系统架构。
· 为不同功能的子系统之间的通信提供统一的API。
OpenStack的逻辑架构
OpenStack是分布式系统,必须从逻辑架构映射到具体的物理架构。
1.控制节点:又称管理节点,用于安装并运行各种OpenStack控制服务,负责管理和控制其余节点,执行虚拟机建立、迁移、网络分配、存储分配等任务。OpenStack的大部分服务都运行在控制节点上。控制节点可以只有一个网络接口,用于各个节点之间的通信和管理。
2.网络节点;可以实现网关和路由功能,负责外部网络与内部网络之间的通信,并将虚拟机连接到外部网络。网络节点仅包含Neutron服务。Neutron服务负责管理私有网段与公有网段的通信、虚拟机网络之间的通信,以及虚拟机上的防火前等。
网络节点通常需要3个网络接口,分别用于与控制节点通信、与除控制节点之外的计算节点和存储节点通信、外部的虚拟机与相应网络之间的通信。
网络节点根据虚拟网络选项来决定要部署的服务和组件。部署时有两种选项,一种是提供者网络,另一种是自服务网络。选择提供者网络,将以最简单的方式部署OpenStack网络服务,只需要二层(网桥/交换机)服务和虚拟局域网划分。选择自服务网络,会在提供者网络的基础上增加三层(路由)服务,以便使用像VXLAN这样的网络覆盖分段方法。
3.计算节点:实际运行虚拟机的节点,可以部署多个计算节点。一个计算节点至少需要两个网络接口:一个与控制节点进行通信,受控制节点统一调配;另一个与网络节点和存储节点进行通信。
4.存储节点:负责对虚拟机的额外存储进行管理,即为计算节点的虚拟机提供持久化的卷服务。
OpenStack的物理网络模型
OpenStack物理部署就是要将承载不同服务的物理节点通过物理网络进行连接,从而使各个服务在云平台上协同工作。这里所讲的网络类型涉及的是节点主机之间的物理网络连接,而不是OpenStack网络服务中的虚拟网络。
OpenStack环境中的物理网络配置往往包括以下类型。
1.外部网络:即公共网络,是外部或Internet可以访问的网络。
2.管理网络:用于实现OpenStack各个组件之间的内部通信,并提供API访问端点。该网络必须限制在数据中心之内,以保证云平台的安全性。
3.API网络:用于为用户提供OpenStack API
4.数据网络:用于云部署中的内部数据流,如虚拟机之间的数据通信。