集群配置以及用户授权
配置
使用cephadm安装完成ceph之后,会在/etc/ceph目录中自动生成ceph的配置文件ceph.conf,采用ini file格式,使用#或者;对配置进行注释
- global 全局配置,对所有的服务和客户端有效,优先级最低
- mon mgr osd等都是ceph相关组件的配置
配置修改
ceph的集中配置管理数据库默认存放在每个MON节点的/var/lib/ceph/
数据库的容量会随着时间增大,可以使用命令ceph config set mon mon_compact_on_start true使得mon每次启动后对其进行压缩
网络配置举例
生产环境中,ceph需要两个网络平面来承载,公共网络和集群网络,前者用于客户端访问ceph提供的存储资源,后者是后端网络,用于ceph组件之间的交互,数据复制。
ceph认证
ceph认证授权的使用场景分为:
1、客户端接入ceph资源池
2、ceph集群组件之间交互
默认是使用cephx协议进行认证授权,在进行ceph访问的时候,需要指定用户和keying
认证流程
1、clinet像mon发起创建用户的请求,mon会产生对应的密钥并将密钥返回给clinet
2、mon同时将生产的密钥分享给MDS和osd
3、发起认证请求,合法时,MON产生sesion key,并使用密钥加密,返回给客户端
4、客户端收到session key进行解密,并向MON申请session 的ticket,返回给客户端
5、客户端使用ticket与mds和osd进行交互
用户
cephx协议格式是
1、客户端
2、服务进程
对象存储以及网关站点部署
对象存储
对象存储是一个基于对象的海量存储服务,为用户提供海量,安全,高可用,低成本的数据存储能力,对象是osd中的数据存储的基本单位,一个对象实际上是一个文件的数据与其相关的属性信息的集合体,包括key,metadata,data三部分。
- key 键值,对象的名称
- metadata 元数据,对象的描述信息
- data 实际数据
桶 bucket,是obs中对象存储的容器,对象存储提供了基于桶和对象的扁平化存储方式,桶中所有的对象都处于同一逻辑层级,去除了文件系统中的多层级树形目录结构
每个桶都有自己的存储类别,访问权限,所属区域等属性,用户可以在不同的区域创建不通的存储列别和访问权限的桶,并配置更多高级属性来满足不同场景的存储场景
对象存储网关
ceph的对象存储服务可直接开发应用调用rados实现,也可以通过rgw (rados gateway)实现,rgw是建立librados上一个对象存储接口,它为应用访问ceph存储集群提供了restful网关,当前支持两种接口s3,swift
在rgw中,realm是一个全局的,独一无二的,由zonegroup组成命名空间,每个realm都有对应的period,在进行配置修改的时候,需要更新并提交period,使得配置生效。
zone,是由一个或者多个rgw实例组成的逻辑概念,zone的配置保存在period中,多个zone可以组成zonegroup,用于多站点服务
当创建对象存储网关后,系统会自动生成数个资源池,分别是
rgw.root,rgw.log,rgw.control ,rgw.meta,rgw.buckets.index,buckets.data,rg等
对象存储网关操作
块存储RBD和文件存储cephFS
ceph的块存储
基于rados构建,经过精简配置,大小调整后,在多个osd上实现存储的条带化,可以实现快照,复制和存储的强一致性。
应用访问块存储通过两种方式实现
- librdb用户接口,libardos.so库作为客户端连接rados集群
- krbd内核接口,通过rdb命令将块设备映射为主机设备,可以挂载到指定目录
创建块存储并挂载给客户端
RBD设置扩容
RBD快照管理
CephFS
cephfs 文件系统是基于ceph分布式存储RADOS构架的兼容posix的文件系统,它需要运行在集群中运行MDS服务,其守护进程为ceph-mds,用于管理cephfs中所存储的文件的元数据,以及协调对ceph集群的访问,并且通过ceph-mds将元数据与数据分开,可以降低复杂性并提高可靠性。
原理
MDS管理CephFS客户端的元数据,ceph-mds为客户接入提供相关信息,如文件在文件系统结构中的具体位置等。
MDS还管理着目录结构以及文件的元数据,如所属用户,时间戳,权限等,还负责响应缓存的接入和管理,来维护缓存一致性。
MDS有两个状态,活动,负责元数据管理,备用,当前MDS无法响应的时候状态,
CephFS在访问数据的时候,会有通过MON的验证,并获取到集群映射信息,然后从MDS请求到相关的元数据,并通过请求到的元数据直接与OSD进行通信