目录
2.3、使用 packstack 一键在线部署 OpenStack
2.4、通过 Dashboard 体验 OpenStack 功能
一、云计算概述
相信大家都听到很多的阿里云、腾讯云、百度云等等这些词,那到底什么是云计算?云计算又能做什么?
1.1、什么是云计算
云计算(cloud computing)是一种基于网络的超级计算模式,基于用户的不同需求,提供所需的资源,包括计算资源、存储资源、网络资源等。云计算服务运行在若干台高性能物理服务器之上,提供每秒 10 万亿次的运算能力,可以用于模拟核爆炸、预测气候变化以及市场发展趋势。
云计算有广义和狭义之分。
- 狭义的云计算是指通过网络按需向用户提供 IT 基础设施,包括硬件、平台和软件,提供资源的网络被称为“云”。在使用者看来,“云”中的资源是无限大的,无论需要多少资源,云都可以提供。而在云端,所有的资源都可以通过横向进行扩展,如同使用水电、 煤气一样。以用电为例,如果用户自行发电,那么用户需要维护一台发电机,定期加油,出现问题需要维修。而如果使用公共电网,用户不需要知道发电厂在哪里、怎么发电等问题,只需要按需付费使用就可以,多用多付,少用少付。在用户看来,电的资源是无限的。
- 广义的云计算是指服务的交付和使用模式,通过网络以按需、易扩展的方式获得所需的服务。这种服务可以是 IT 和软件、互联网相关的,也可以是任意其他的服务。
云计算是一种模型,提供无论在何时何地都可以便捷获取所需资源的模型,并能够让用户根据需要快速创建应用,并且在不需要时进行资源释放。
现在云计算技术已经日渐成熟,很多企业已经拥有自己的私有云,而掌握这种技术的人才也更为抢手。目前,云计算使用最广泛的是开源项目 OpenStack。经过多个版本的开发更新,现在已经到 T 版。作为云计算项目之一的 OpenStack 也受到各个企业的青睐,成为 大家搭建私有云的首选。
1.2、云计算的服务模型
云计算模型中有 IaaS(Infrastructure as a Service,基础架构即服务)、PaaS(Platform as a Service,平台即服务)、SaaS(Software as a Service,软件即服务)三种基本服务模型。
1)IaaS
IaaS 提供最底层的 IT 基础设施服务,包括处理能力、存储空间、网络资源等。用户可以从中获取硬件或者虚拟硬件资源(包括裸机或者虚拟机),之后可以给申请到的资源安装操作系统和其他应用程序。一般面向的对象是 IT 管理人员。
2)PaaS
PaaS 是把已经安装好开发环境的系统平台作为一种服务通过互联网提供给用户。用户可以在上面安装其他应用程序,但不能修改已经安装好的操作系统和运行环境。一般面向的对象是开发人员,需要了解平台提供环境下的应用开发和部署。
3)SaaS
SaaS 可直接通过互联网为用户提供软件和应用程序等服务。用户可以通过租赁的方式获取安装在厂商或者服务供应商那里的软件。一般面向的对象是普通用户,最常见的模式是提供给用户一组账号和密码。
1.3、OpenStack 概述
1)OpenStack 起源
OpenStack 是 Rackspace(一家美国的云计算厂商)和美国国家航空航天局(National Aeronautics and Space Administration,简称 NASA)在 2010 年 7 月共同发起的项目。由 Rackspace 贡献存储源码(Swift)、NASA 贡献计算源码(Nova)。
2)什么是 OpenStack
OpenStack 是一个通过数据中心控制计算资源、存储资源和网络资源的云平台。同时它又是一款开源软件,以 Apache 许可证授权的自由软件和开放源代码项目,支持所有类型的云环境。OpenStack 的目标是提供简单实施、可扩展以及丰富功能集的云产品,来自全世界的云计算专家共同维护该云项目。OpenStack 通过多种补充服务提供了 IaaS 解决方案,每一种服务均提供了相应的应用程序接口(Application Programming Interface,简称 API), 以促进各组件之间的整合。
OpenStack 被用来提供公有云以及私有云的建设以及管理。作为一个开源项目,其社区规模涵盖 130 家企业以及 1350 位开发人员。这些机构与个人都将 OpenStack 作为 IaaS 资源的通用前端。
OpenStack 覆盖了网络、虚拟化、操作系统、服务器等各个方面。2019 年 10 月 OpenStack 发布了最新版本 2024.1。一般情况下,OpenStack 每半年左右更新一次版本。下表中列出了 OpenStack 常见的 8 个核心项目(即 OpenStack 服务)。
服务 | 项目名称 | 描述 |
Compute(计算服务) | Nova | 负责实例生命周期的管理,计算资源的单位。对 Hypervisor 进行屏蔽,支持多种虚拟化技术(红帽默认为 KVM),支持横向扩展。 |
Network(网络服务) | Neutron | 负责虚拟网络的管理,为实例创建网络拓扑结构。是面向租户的网络管理,可以自定义网络,并使租户之间互不影响。 |
Identity(身份认证服务) | Keystone | 类似于 LDAP 服务,对用户、租户和角色、服务进行认证与授权,并且支持多认证机制。 |
Dashboard(控制面板服务) | Horizon | 提供一个 Web 管理界面,与 OpenStack 底层服务进行交互。 |
Image Service(镜像服务) | Glance | 提供虚拟机镜像模板的注册与管理,将做好的操作系统复制为镜像模板,在创建虚拟机时直接使用。可支持多格式的镜像。 |
Block Storage(块存储服务) | Cinder | 负责为运行实例提供持久的块存储设备,可进行方便的扩展,按需付费,支持多种后端存储。 |
Object Storage(对象存储服务) | Swift | 为 OpenStack 提供基于云的弹性存储,支持集群无单点故障。 |
Telemetry(计量服务) | Ceilometer | 用于度量、监控和控制数据资源的集中来源,为 OpenStack 用户提供记账途径。 |
常见的 OpenStack 服务
3)OpenStack 优势
OpenStack 在控制性、兼容性、可扩展性、灵活性方面具备有优势,它可能成为云计算领域的行业标准。
- 控制性:完全开源的平台,模块化的设计,提供相应的 API 接口,方便与第三方技术集成,从而满足自身业务需求。
- 兼容性:OpenStack 兼容其他公有云,方便用户进行数据迁移。
- 可扩展性:Openstack 采用模块化的设计,支持主流的 Linux 发行版本,可以通过横向扩展,增加节点、添加资源。
- 灵活性:用户可以根据自己的需要建立基础设施,也可以轻松地为自己的群集增加规模。 Openstack 项目采用 Apache2 许可,意味着第三方厂家可以重新发布源代码。
- 行业标准:众多 IT 领军企业都加入到 OpenStack 项目,意味着 OpenStack 在未来可能形成云计算行业标准。
二、OpenStack 一键部署
本章使用 packstack 工具实现一键部署 OpenStack。通过该安装工具,只需简单运行一条命令,即可快速部署 OpenStack,省去繁琐的安装步骤,直接体验 OpenStack 的管理及使用。
2.1、环境介绍
1)本章实验环境
本案例需要提前部署一台新安装操作系统的主机,要求能访问互联网,主机的系统只需采用最小化方式安装。若通过 VMware 等虚拟机软件实现,网络采用桥接模式。
本章使用操作系统为 CentOS 7.6 的主机。下表是安装部署 OpenStack 环境的硬件设备配置要求。
类型 | 配置要求 |
CPU | 支持 Intel 64 或 AMD64 CPU 扩展,并启用了 AMD-V 或 Intel VT 硬件 虚拟化支持的 64 位 x86 处理器,逻辑 CPU 个数为 4 核 |
内存 | 16G |
磁盘空间 | 100G |
网络 | 1 个 1 Gbps 网卡 |
具体的案例环境如下表所示
主机名 | IP地址 / 掩码 | 角色 |
openstack | ens32:192.168.23.211 | 安装所有 OpenStack 组件及需要的环境 |
2)实验需求
本章后续实验步骤用于实现以下需求:
- 使用 packstack 一键部署 OpenStack。
- 创建云主机( OpenStack 中的虚拟机 )。
3)实现思路
- 安装前的准备工作。
- 使用 packstack 一键部署 OpenStack。
- 通过 Dashboard 体验 OpenStack 功能。
2.2、在线安装前准备工作
正式部署 OpenStack 之前,首先要准备如下环境。
1)准备虚拟机
实验所需虚拟机可以通过 VMware 等软件实现。虚拟机需要配置静态 IP 地址、网关及 DNS 参数,并测试网络连通性(具体过程略)。不过在配置 IP 地址的时候不要有“DOMAIN=x.x.x.x”这一行,因为这会影响 nova 配置文件内 host 的配置项,从而导致可用域不可用,无法创建虚拟机。后面离线部署也要注意此问题。
注意:虚拟机要打开虚拟化引擎
2)修改主机名
[root@centos7-11 ~]# hostnamectl set-hostname openstack
[root@centos7-11 ~]# bash
[root@openstack ~]#
3)更新系统并安装常用软件
[root@openstack ~]# yum -y update //更新系统
[root@openstack ~]# yum -y install vim wget net-tools lrzsz //安装常用软件
4)关闭防火墙并取消开机启动
[root@openstack ~]# system