## (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](http://pded8ke3e.bkt.clouddn.com/8-1-1.png)
- 镜像主件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](http://pded8ke3e.bkt.clouddn.com/8-1-2.png)
- 认证组件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](http://pded8ke3e.bkt.clouddn.com/8-1-3.jpg)
OpenStack项目的使用公司众多,通过查看官方主页上使用公司列表,国外有redhat,intel,cisco,IBM等企业,国内有华为,新华三,EasyStack等。众多的世界排名企业都纷纷开始了OpenStack云架构的竞赛中,使得项目发展迅速,稳定成熟,广泛的运用在互联网各个行业中。
![8-1-4](http://pded8ke3e.bkt.clouddn.com/8-1-4.jpg)
众多的开发者活跃在OpenStack社区上,使得社区发帖量、回复量、问题处理速度等极速上升,在选择开源项目时,管理者主要聚焦与技术指标,比如性能、可靠性、功能等方案,OpenStack致力于一个开放式的设计过程,定时收集企业项目、开发者、普通用户的意见指定版本发展线路,时间频率是是每半年一次。
![8-1-5](http://pded8ke3e.bkt.clouddn.com/8-1-5.png)
- 献给我的朋友们
- 一、个人对学习的看法
- 二、运维技能图谱
- 三、运维常用技能
- 3.1 Vim(最好用的编辑器)
- 3.2 Nginx & Tengine(Web服务)
- 1. Nginx介绍和部署
- 2. Nginx配置解析
- 3. Nginx常用模块
- 4. Nginx 的session 一致性问题
- 3.3 Tomcat(Web中间件)
- 3.4 Keepalived(负载均衡高可用)
- 3.5 Memcache(分布式缓存)
- 3.6 Zookeeper(分布式协调系统)
- 3.7 KVM(开源虚拟化)
- 1. 虚拟化介绍
- 2. KVM基础
- 3. 设置VNC和时间同步
- 4. kvm虚拟机快照备份
- 5. kvm虚拟机在线扩展磁盘
- 6. kvm虚拟机静态迁移
- 7. kvm虚拟机动态迁移
- 8. kvm虚拟机存储池配置
- 9. cpu添加虚拟化功能
- 3.8 GitLab(版本控制)
- 3.8.1 GitLab安装与汉化
- 3.9 Jenkins(运维自动化)
- 3.10 WAF(Web防火墙)
- 3.10.1初探WAF
- 四、常用数据库
- 4.1 MySQL(关系型数据库)
- 1. MySQL源码安装
- 4.2 Mongodb(适用与大数据分析的数据库)
- 4.3 Redis(非关系数据库)
- 五、自动化运维工具
- 5.1 Cobbler(系统自动化部署)
- 5.2 Ansible(自动化部署)
- 5.3 Puppet(自动化部署)
- 5.4 SaltStack(自动化运维)
- 六、存储
- 6.1 GFS(文件型存储)
- 6.2 Ceph(后端存储)
- 七、运维监控工具
- 7.1 对监控的理解
- 7.2 Zabbix(运维监控)
- 7.2.1 Zabbix简介
- 7.2.2 Zabbix服务部署
- 1. Zabbix服务端部署
- 2. Zabbix客服端部署
- 3. 配置前端展示
- 4. zabbix告警配置
- 7.2.3 Zabbix监控服务
- 1. 监控网络设备
- 2. 自定义Nginx监控
- 7.3 云镜(安全监控)
- 7.4 ELK(日志收集展示)
- 八、运维云平台
- 8.1 OpenStack(开源云操作系统)
- 8.1.1 OpenStack简介
- 8.1.2 实验架构设计
- 8.1.3 集群环境准备
- 8.1.4 controller节点部署
- 1. 安装Mariadb Galera Cluster集群
- 2. 安装RabbitMQ Cluster集群
- 3. 安装Pacemaker
- 4. 安装HAProxy
- 5. 安装配置Keystone
- 6. 安装配置glance
- 1. 制作镜像模板
- 7. 安装配置nova
- 8. 安装配置neutron
- 1. 配置虚拟机网络
- 9. 安装Dashboard
- 10. 安装配置cinder
- 8.1.5 compute节点部署
- 1. 安装相关软件包
- 2. 安装Neutron
- 3. 配置cinder
- 4. 创建第一个虚拟机
- 8.1.6 OpenStack报错处理
- 1. cinder僵尸卷删除
- 8.1.7 快速孵化虚拟机方案
- 8.1.8 Kolla容器化部署OpenStack
- 1. 单点部署
- 2. 多节点部署
- 8.2 Tstack(腾讯云平台)
- 8.3 K8s(微服务容器化)
- 九、运维编程技能
- 9.1 Shell(运维必会语言)
- 9.2 Python(万能的胶水语言)
- 十、Devops运维
- 10.1 理念
- 10.2 Devops实战