目录
一.云计算概述
1.什么是云计算
云计算(cloud computing)是一种基于网络的超级计算模式,基于用户的不同需求,提供所需的资源,包括计算资源、存储资源、网络资源等。云计算服务运行在若干台高性能物理服务器之上,提供每秒 10 万亿次的运算能力,可以用于模拟核爆炸、预测气候变化以及市场发展趋势。
云计算有广义和狭义之分。
- 狭义的云计算是指通过网络按需向用户提供 IT 基础设施,包括硬件、平台和软件,提供资源的网络被称为“云”。在使用者看来,“云”中的资源是无限大的,无论需要多少资源,云都可以提供。而在云端,所有的资源都可以通过横向进行扩展,如同使用水电、煤气一样。以用电为例,如果用户自行发电,那么用户需要维护一台发电机,定期加油,出现问题需要维修。而如果使用公共电网,用户不需要知道发电厂在哪里、怎么发电等问题,只需要按需付费使用就可以,多用多付,少用少付。在用户看来,电的资源是无限的。
- 广义的云计算是指服务的交付和使用模式,通过网络以按需、易扩展的方式获得所需的服务。这种服务可以是I 和软件、互联网相关的,也可以是任意其他的服务。
云计算是一种模型,提供无论在何时何地都可以便捷获取所需资源的模型,并能够让用户根据需要快速创建应用,并且在不需要时进行资源释放。
现在云计算技术已经日渐成熟,很多企业已经拥有自己的私有云,而掌握这种技术的人才也更为抢手。目前,云计算使用最广泛的是开源项目OpenStack。经过多个版本的开发更新,现在已经到T版。作为云计算项目之一的 OpenStack 也受到各个企业的青睐,成为大家搭建私有云的首选。
2.云计算的服务模型
云计算模型中有 laaS(Infrastructure as aService,基础架构即服务)、PaaS(PlatformasaService,平台即服务)、SaaS(SoftwareasaService,软件即服务)三种基本服务模型。
(1).laaS
laaS 提供最底层的IT基础设施服务,包括处理能力、存储空间、网络资源等。用户可以从中获取硬件或者虚拟硬件资源(包括裸机或者虚拟机),之后可以给申请到的资源安装操作系统和其他应用程序。一般面向的对象是I管理人员。
(2).PaaS
PaaS 是把已经安装好开发环境的系统平台作为一种服务通过互联网提供给用户。用户可以在上面安装其他应用程序,但不能修改已经安装好的操作系统和运行环境。一般面向的对象是开发人员,需要了解平台提供环境下的应用开发和部署。
(3).Saas
SaaS 可直接通过互联网为用户提供软件和应用程序等服务。用户可以通过租赁的方式获取安装在厂商或者服务供应商那里的软件。一般面向的对象是普通用户,最常见的模式是提供给用户一组账号和密码。
3. OpenStack 概述
(1).OpenStack 起源
OpenStack 是 Rackspace(一家美国的云计算厂商)和美国国家航空航天局(National Aeronautics and Space Administration,简称 NASA)在 2010年7月共同发起的项目。由 Rackspace 贡献存储源码(Swift)、NASA 贡献计算源码(Nova)
(2).什么是OpenStack
OpenStack 是一个通过数据中心控制计算资源、存储资源和网络资源的云平台。同时它又是一款开源软件,以 Apache 许可证授权的自由软件和开放源代码项目,支持所有类型的云环境。OpenStack的目标是提供简单实施、可扩展以及丰富功能集的云产品,来自全世界的云计算专家共同维护该云项目。OpenStack通过多种补充服务提供了laaS解决方案每一种服务均提供了相应的应用程序接口(Application Programming Interface,简称 API),以促进各组件之间的整合
OpenStack 被用来提供公有云以及私有云的建设以及管理。作为一个开源项目,其社区规模涵盖 130 家企业以及 1350 位开发人员。这些机构与个人都将 OpenStack 作为 laaS资源的通用前端
OpenStack 覆盖了网络、虚拟化、操作系统、服务器等各个方面。2019年 10月OpenStack 发布了最新版本 Train。一般情况下,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 用户提供记账途径 |
(3).OpenStack 优势
OpenStack 在控制性、兼容性、可扩展性、灵活性方面具备有优势,它可能成为云计算领域的行业标准
- 控制性:完全开源的平台,模块化的设计,提供相应的 API接口,方便与第三方技术集成,从而满足自身业务需求
- 兼容性:OpenStack兼容其他公有云,方便用户进行数据迁移
- 可扩展性:0penstack采用模块化的设计,支持主流的Linux 发行版本,可以通过横向扩展,增加点、添加资源
- 灵活性:用户可以根据自己的需要建立基础设施,也可以轻松地为自己的群集增加规模。Openstack 项目采用 Apache2 许可,意味着第三方厂家可以重新发布源代码
- 行业标准:众多|领军企业都加入到 OpenStack 项目,意味着 OpenStack 在未来可能形成云计算行业标准
二.部署Openstack
1.系统描述
- 系统版本:Centos7-9
- ip:192.168.10.201
- 内存:16G
- 开启虚拟化功能
2.设置在线安装
为系统设置阿里云的仓库
# 删除系统中所有的yum源配置文件(此操作需谨慎,会清除所有现有yum源)
[root@openstack ~]# rm -rf /etc/yum.repos.d/*
# 从阿里云镜像站下载CentOS 7的基础源配置文件
# 该配置文件指向阿里云的CentOS 7软件仓库,可提高软件包下载速度
[root@openstack ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 2523 100 2523 0 0 9083 0 --:--:-- --:--:-- --:--:-- 9108
# 清理yum缓存
# 清除所有已缓存的软件包和headers信息,确保后续操作基于最新的仓库信息
[root@openstack ~]# yum clean all
# 升级系统中所有软件包至最新版本(-y参数自动确认所有提示)
# 此操作会检查并更新所有已安装的软件包到仓库中的最新版本
[root@openstack ~]# yum -y update
更新结束后重启系统
3.系统基本环境设置
[root@localhost ~]# hostnamectl set-hostname openstack
[root@localhost ~]# bash
[root@openstack ~]# systemctl stop firewalld
[root@openstack ~]# systemctl disable firewalld
[root@openstack ~]# setenforce 0
[root@openstack ~]# vim /etc/sysconfig/selinux
SELINUX=disabled
[root@openstack ~]# systemctl stop NetworkManager
[root@openstack ~]# systemctl disable NetworkManager
[root@openstack ~]# vim /etc/hosts
192.168.10.100 openstack
[root@openstack ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
[root@openstack ~]# sysctl -p
net.ipv4.ip_forward = 1
4.设置KVM源
# 使用Here Document方式向CentOS基础源配置文件追加KVM虚拟化相关软件源
# EOF为定界符,表示输入内容的开始和结束
[root@openstack yum.repos.d]# cat <<EOF>>/etc/yum.repos.d/CentOS-Base.repo
[Virt] # 定义软件源ID为Virt,用于yum识别
name=CentOS-$releasever - Base # 软件源名称,$releasever为系统版本变量
baseurl=http://mirrors.aliyun.com/centos/7.9.2009/virt/x86_64/kvm-common/ # 指定阿里云KVM软件源地址
gpgcheck=0 # 禁用GPG密钥校验(0表示不校验)
enabled=1 # 启用此软件源(1表示启用)
EOF # Here Document结束标记
5.设置openstack仓库
使用阿里的openstack仓库
# 创建OpenStack Train版本的yum源配置文件
# 使用Here Document方式将内容写入新创建的train.repo文件(覆盖原有内容)
[root@openstack yum.repos.d]# cat <<EOF> /etc/yum.repos.d/train.repo
[train] # 定义软件源ID为train,用于yum识别
name=centos-train # 软件源名称,便于用户识别
baseurl=https://mirrors.aliyun.com/centos/7/cloud/x86_64/openstack-train/ # 指定阿里云OpenStack Train版本的软件源地址
gpgcheck=0 # 禁用GPG密钥校验(0表示不校验)
enabled=1 # 启用此软件源(1表示启用)
EOF # Here Document结束标记
6.安装部署工具
# 使用yum包管理器安装openstack-packstack工具(-y参数自动确认所有安装提示)
# packstack是OpenStack的自动化部署工具,可简化多节点或单节点OpenStack环境的安装配置过程
[root@openstack yum.repos.d]# yum -y install openstack-packstack
# 删除elrepo.repo配置文件(elrepo通常是第三方硬件驱动或内核相关的软件源)
# 此操作可能是为了避免第三方源与OpenStack所需依赖包产生冲突,确保依赖版本一致性
[root@openstack yum.repos.d]# rm -rf /etc/yum.repos.d/elrepo.repo
7.一键安装
清除yum缓存元数据
# 清理旧的元数据缓存
yum clean all
# 重建缓存(加载修正后的源配置)
yum makecache
安装
packstack --allinone