最近在学习Openstack+ceph集群,这里记录一些随笔,有不同观点欢迎指出
Openstack
文章目录
- Openstack
- 什么是Openstack
- Openstack做什么
- Openstack运用在哪里
- Openstack架构
- openStack Dashboard
- Compute
- Networking
- Storage
- 关系图
- 组件间关系
- Openstack新建云主机流程图
- Ceph
- 什么是Ceph
- Ceph做什么
- Ceph运用在哪里
- Ceph集群的组成
- Ceph中有三个核心组件
- OSD守护进程
- 为什么需要两个OSD守护进程:
- Monitor
- Managers
- Ceph架构图
- 整体架构
- 网络架构
什么是Openstack
是一个基础设施资源管理平台
Openstack做什么
可以按需求提供资源(类似操作系统可以管理硬件部分)
Openstack运用在哪里
Keystone 认证服务
Glance 镜像服务
Nova 计算服务
Neutron 网络服务
Cinder 块存储服务
Swift 对象存储服务
Horizon dashboard服务
Heat 编排服务
Ceilometer 监控服
务
Sahara 大数据部署服务
...
Openstack架构
应用通过API接入openStack
openStack Dashboard
openstack中提供的一个web前端控制台,以此来展示openstack的功能
dashboard这个服务可以运行在控制节点,也可以运行在其他一个单独的节点上
Compute
计算节点
Networking
网络节点
Storage
存储节点
关系图
组件间关系
Keystone:认证服务
Glance:镜像服务
Nova:计算服务
Neutron:网络服务
Cinder:存储服务
Horizon:web 界面
Cellometer:监控计费
Swit:对象存储
Heat:编排服务(通过剧本,批量部署虚拟机)
Openstack新建云主机流程图
1.keystone 身份认证
2.填写创建云主机的相关配置–> nova-api --> 将相关信息保存到 MySQL
3.nova-scheduler --> 读取 MySQL 云主机配置信息 --> 读取计算节点资源
4.nova-compute 通过 nova-conductor 获取云主机配置信息 --> 调取相关模块(neutron、glance、cinder)进行云主机的创建
Ceph
什么是Ceph
是一个分布式存储系统
Ceph做什么
可以提供对象存储、块存储和文件存储
Ceph运用在哪里
对象存储和块存储可以很好地和各大云平台集成
Ceph集群的组成
Monitor节点
MDS节点(可选,用于文件存储)至少两个OSD守护进程
Ceph中有三个核心组件
OSD守护进程
1.用于存储数据、处理数据拷贝、恢复、回滚、均衡,并通过心跳程序向Monitor提供部分监控信息
2.一个Ceph集群中至少需要两个OSD守护进程
为什么需要两个OSD守护进程:
两个OSD节点,集群才能到达active+clean状态
Monitor
用于维护集群的状态映射信息(个人理解是监控集群运行状态)
包括monitor、OSD、Placement Group(PG)
还维护了Monitor、OSD和PG的状态改变历史信息
Managers
1.负责跟踪运行时间指标和Ceph群集的当前状态
2.包括存储利用率,当前性能指标和系统负载
3.同时还托管基于python的插件来管理和公开Ceph集群信息,包括基于Web的仪表板和REST API。 通常,至少有两名Manager需要高可用性
Ceph架构图
APP :应用程序
HOST:主机
VM:虚拟机
Client:接入
LibRados:Ceph的客户端通过一套名为librados的接口进行集群的访问
RadosGW:RadosGW 是对象存储(OSS,Object Storage Service)的一种实现方式,RADOS 网关也称为 Ceph对象
对象存储概念:
对象是对象存储系统中数据存储的基本单位,每个 Object 是数据和数据属性集的综合体,数据属性可以根据应用的需求进行设置,包括数据分布、服务质量等每个对象自我维护其属性,从而简化了存储系统的管理任务,对象的大小可以不同,对象存储(Object Storage)是无层次结构的数据存储方法,通常用于云计算环境中,不同于其他数据存储方法,基于对象的存储不使用目录树,数据作为单独的对象进行存储,数据并不放置在目录层次结构中,而是存在于平面地址空间内的同一级别,应用通过唯一地址来识别每个单独的数据对象,每个对象可包含有助于检索的元数据,专为使用 API 在应用级别(而非用户级别)进行访问而设计
S3:S3 由 Amazon 于 2006 年推出,全称为 Simple Storage Service,S3 定义了对象存储,是对象存储事实上的标准,从某种意义上说,S3 就是对象存储,对象存储就是 S3,它对象存储市场的霸主,后续的对象存储都是对 S3 的模仿
Swift:OpenStack Object Storage(Swift)是OpenStack开源云计算项目的子项目之一,被称为对象存储,提供了强大的扩展性、冗余和持久性。对象存储,用于永久类型的静态数据的长期存储
RBD:RBD即RADOS Block Device的简称,RBD块存储是最稳定且最常用的存储类型
CepthFS:cephfs是ceph提供的兼容POSIX协议的文件系统,对比rbd和rgw功能,这个是ceph里最晚满足production ready的一个功能,它底层还是使用rados存储数据
Rados:RADOS的全称为Reliable Autonomic Distributed Object Store,也就是可靠的,自修复分布式对象存储。其关键特性体现在两方面,一方面是数据是高可靠的;另外一方面是对于故障的自修复能力,比如出现宕机或者磁盘故障问题等情况下实现自动的故障处理,实现集群状态的修复。是Ceph分布式存储系统的核心和基座
MDS:MDS全称Ceph Metadata Server,是CephFS服务依赖的元数据服务
MON:一个Ceph集群需要多个Monitor组成的小集群,它们通过Paxos同步数据,用来保存OSD的元数据
Pool:池
CRUSH map:ceph从L版本开始新增了个功能叫crush class,又被称之为磁盘智能分组。因为这个功能就是根据磁盘类型自动进行属性关联,然后进行分类减少了很多的人为操作
PG:pg ( placement group ) 是数据存储的重要单位
OSD:一块硬盘 通常对应一个 OSD,由 OSD对硬盘存储进行管理,但有时一 个分区也可以成为一个 OSD
Cluster Node:cluster 用于监听 process(child) 子进程触发的各种事件
整体架构
libvirt:Libvirt是用于管理虚拟化平台的开源的API,后台程序和管理工具。它可以用于管理KVM、Xen、VMware ESX,QEMU和其他虚拟化技术。这些API在云计算的解决方案中广泛使用。
QEMU:模拟器
librbd:块存储的接口
librados:一个Ceph客户端,通过librados直接与OSD交互,来存储和取出数据
网络架构