云计算是一种按使用量付费的模式(资源服务模式),该模式可以实现随时随地、便捷按需的从可配置资源共享池中获取所需的资源。
云计算的核心是将资源协调在一起,使用户通过网络就可以获取到无限的资源并且不受时间和空间的限制,为用户提供一种全新的体验。
云计算服务类型
1. IaaS(基础设施即服务):提供商提供虚拟化计算资源,如虚拟机、存储、网络和操作系统。
2. PaaS(平台即服务):通过互联网为开发人员提供构建应用程序和服务的平台。
3. SaaS(软件即服务):通过互联网为用户提供按需软件付费应用程序。
OpenStack是一个云操作系统,通过数据中心可控制大型的计算、存储、网络等资源池。所有的管理通过前端界面管理员就可以完成,同样也可以通过web接口让最终用户部署资源。
我们这里搭建的OpenStack是属于iaas云计算服务类型
OpenStack共享服务组件(对于这些服务都应该有一定的了解)
1. 数据库服务:Mariadb。
2. 消息传输服务:RabbitMQ
3. 缓存服务:Memcached
4. 时间同步服务:ntp
5. 域名解析服务:DNS
6. 防火墙管理服务:iptables
7.一个键值存储仓库,用于配置共享和服务发现:ETCD
OpenStack核心服务组件
1. 认证服务:Keystone。提供了其余所有组件的认证信息/令牌的管理,创建,修改等等,使用MySQL作为统一的数据库。
2. 镜像服务:Glance。提供了对虚拟机部署的时候所能提供的镜像的管理,包含镜像的导入,格式,以及制作相应的模板
3. 计算服务:Nova。负责维护和管理OpenStack的计算资源,维护和管理计算和网络。
4. 网络服务:Neutron。提供了对网络节点的网络拓扑管理,同时提供Neutron在Horizon的管理面板
5. Web界面服务:Horizon。提供了以Web的形式对所有节点的所有服务的管理
6. 块存储服务:Cinder。为运行实例提供稳定的数据块存储服务,提供对 volume 从创建到删除整个生命周期的管理。
7. 对象存储服务:Swift。为Glance提供镜像存储和卷备份服务
8. 部署编排服务:Heat。提供了基于Heat模板来实现云环境中资源的自动部署
9.容器管理服务:Zun。用于实现容器生命周期管理
10. 测量服务:Ceillrmeter。提供对物理资源以及虚拟资源的监控,并记录这些数据,对该数据进行分析,在一定条件下触发相应动作
11.警告服务:Aodh。aodh是由ceilometer分离出来的组件,主要功能是提供资源告警功能,支持log,webhook等方式告警。
在这解释一下, 块存储和对象存储的区别:
安装虚机,自然少不了存储空间或者空间太少需要扩容,这时需要由Cinder提供块存储服务;
针对某些项目可能会用到Swift对象存储服务;举个大家都在用的百度网盘的例子,很多人都会去存一些电影,但是可能 有大部分电影是重复的,若每个百度网盘用户都真实的把视频 存到了云端,大量的重复视频岂不是浪费了许多百度的存储空间?这时候对象存储是最好的选择,用户上传视频时,先根据算法看看云端是否有相同的内容,若查到有相同的存储信息 ,直接反馈用户“上传成功”,实际并没有上传的!用户下载时在云端找到相同的资源提供其下载就可以了,在这里镜像就是电影,这样既服务了客户又节省了存储空间
Keystone的学习:
域、租户、用户、角色、服务、证书、令牌、端点的概念和作用
Keystone与OpenStack其他核心服务组件的联系
Keystone的核心架构
Keystone中的组件在Keystone中分别的作用
熟读Keystone安装脚本
Glance的学习:
了解6种镜像状态
了解现在流行使用的磁盘格式
了解现在流行使用的容器格式
Glance的核心架构
Glance与OpenStack其他核心服务组件的联系
Glance中的组件在Glance中分别的作用
熟读Glance安装脚本
Nova的学习:
Nova的核心架构
Nova与OpenStack其他核心服务组件的联系
Nova中的组件在Nova中分别的作用
了解Nova创建虚拟机的流程
了解Cell
熟读Nova安装脚本
Neutron的学习:
了解Neutron 支持Network类型
Neutron的核心架构
Neutron与OpenStack其他核心服务组件的联系
Neutron中的组件在Neutron中分别的作用
了解ML2 Core Plugin
熟读Neutron安装脚本
Horizon的学习:
Horizon本身没什么好学的,熟练使用Horizon的web页面创建云主机类型、创建网络和创建云主机等操作
熟读Horizon安装脚本
Cinder的学习:
Cinder的核心架构
Cinder与OpenStack其他核心服务组件的联系
Cinder中的组件在Cinder中分别的作用
了解LVM
熟读Cinder安装脚本
Swift的学习:
Swift的核心架构
Swift与OpenStack其他核心服务组件的联系
Swift中的组件在Swift中分别的作用
了解CAP的概念
熟读Swift安装脚本
Heat的学习:
堆栈、模板 、资源、 参数、参数组、输出的概念和作用
Heat的核心架构
Heat与OpenStack其他核心服务组件的联系
Heat中的组件在Heat中分别的作用
掌握Heat模板语法
熟读Heat安装脚本
Zun的学习:
Zun的核心架构
Zun与OpenStack其他核心服务组件的联系
Zun中的组件在Zun中分别的作用
掌握yaml文件语法
熟读Zun安装脚本
Ceillrmeter的学习:
Ceillrmeter的核心架构
Ceillrmeter与OpenStack其他核心服务组件的联系
Ceillrmeter中的组件在Ceillrmeter中分别的作用
了解gnocchi
熟读Ceillrmeter安装脚本
Aodh的学习:
Aodh的核心架构
Aodh与OpenStack其他核心服务组件的联系
Aodh中的组件在Aodh分别的作用
熟读Aodh安装脚本
OpenStack学习心得:
通过看安装脚本,对OpenStack运维命令有了一定的了解,想要掌握OpenStack运维命令,这还远远不够,还是要看命令的帮助文档来更加了解命令的使用。
通过对OpenStack的核心组件的学习,对OpenStack的工作原理和OpenStack的核心组件的功能会有一定的了解,这对搭建OpenStack平台时排错有很大的帮助。
学习OpenStack不只是为了脚本搭建一个OpenStack私有云平台(基础能力),往深一点学是OpenStack运维和排错(一般能力),再往深一点学是了解OpenStack底层的硬件交互和网络间的通信协议(高手能力)。
在这里多说一句,想要成为高手,计算机408基础一定要好,计算机408是 计算机组成原理、计算机网络、操作糸统、数据结构和算法。
OpenStack架构解读:https://blog.youkuaiyun.com/weixin_50344814/article/details/113207878