ceph支持两个存储集群之间的RBD mirroring,实际上和灾备有关
该机制使用异步机制做一主一从的两个集群
如果包含主RBD映像的集群变得不可用,那么可以从远程集群故障转移到辅助RBD映像
mirror配置参数复制模式
1.One-way/active-passive单向模式(主备)其中一个集群的RBD是读写模式,mirror代理在远端集群运行,可以有多从集群2.Two-way/active-active双向模式(双活)ceph同步目标源和目标对,只允许在两个集群中复制
镜像单位—pool模式/image模式
以pool或者image为单位进行mir...
导入(Import)和导出(Export)操作是管理和迁移 RBD 镜像数据的关键手段
作用:1.使用实际数据量测试新版本2.使用实际的数据量运行质量保证流程3.实现业务连续性场景4.从生产块设备解耦备份进程
导入导出操作123456789101112131415161718参数 作用--export-format 指定导出格式(1 或 2,默认 2)--image-format 导入时指定 RBD 格式(必须匹配)--compress-algorithm 压缩算法(如 lz4, zstd)--object-size 导入时指定对象大小(如 4M, 8M)--stripe-unit 条带...
RBD镜像格式2的镜像可以支持几个可选的特性
其中layering特性是RBD镜像的核心特性
12rbd feature enable <pool-name>/<rbd-name> layeringrbd feature disable <pool-name>/<rbd-name> layering
镜像快照snap先说如果没有快照的情况下,数据对RBD的读写会直接写入磁盘
首先快照是什么
与虚拟机不同,RBD的快照在初始状态下是一个和原镜像同样结构的空镜像
COW写时复制/COR读时复制写入数据首先snap是只读的,写入是对R...
服务类型
是否依赖存储池
存储池用途
创建方式
RBD
✅ 必须绑定存储池
直接存储块设备镜像
rbd create -p <pool> ...
RGW
✅ 自动创建关联存储池
存储对象数据/元数据/索引
由 RGW 自动管理
CephFS
⚠️ 需要专用存储池
存储文件系统数据/元数据
ceph fs new <fs> <metadata> <data>
自定义应用
✅ 可直接使用任意存储池
通过 librados 直接读写对象
rados -p <pool> put .....
Ceph通过CRUSH放置算法,来计算哪些OSD应该保存哪些对象,对象是放到PG中,而CRUSH决定这些PG应该放在哪些OSD中,
CRUSH算法与对象放置策略CRUSH算法CRUSH算法使Ceph客户端可以直接与OSD通信:Ceph客户端与osd使用CRUSH算法来有效计算关于对象位置的信息,而不是依赖于中央查找表,避免了单点故障和性能瓶颈
作用:在对象存储中均匀分布数据、管理复制、响应系统增长和硬件故障
当新增OSD或已有OSD或OSD主机故障时,Ceph使用CRUSH来重新平衡集群中活动OSDs之间的对象。
CRUSH映射组件一个CRUSH映射包含两个组件,整个集群只有一份CRUS...
ceph使用cephx协议授权客户端、应用程序和守护进程之间的通信,并基于共享密钥
Ceph使用用户帐户有以下几个目的:1.用于Ceph守护进程之间的内部通信2.对于通过librados库访问集群的客户机应用程序3.用于集群管理
安装的时候会创建超级用户账号client.admin,这个账号允许访问任何组件并修改集群配置
如果外部访问,只需要完成rgw的认证即可,rgw会使用client.rgw.demo的账号访问ceph集群
如果是个性化的应用程序,则需要创建该程序的账号来访问ceph集群
Key-ring文件ceph在创建每个账户时,都会为其生成key-ring文件,如果要使用它...
pool是ceph存储对象的逻辑分区
Pool 是逻辑容器:将物理存储资源划分为多个隔离的逻辑存储单元
数据隔离层:不同应用/租户使用不同 Pool(如:虚拟机磁盘、文件系统、备份数据)
策略定义层:每个 Pool 可独立配置存储策略
Ceph客户端访问pool的流程**1.**从ceph配置文件中读取cluster name与ceph mon地址,来连接到集群
**2.**使用cluster map来获取被检索到的pool列表与属性,决定在哪里存放对象
3.创建一个特定pool的输入/输出上下文,Ceph集群使用CRUSH算法将这些pool映射到PG,然后将其映...
这块知识了解即可,并不是很重要,BlueStore现在替换了FileStore成为了ceph默认的存储后端
存储后端指的是OSD用于在本地磁盘上实际存储和管理数据的底层引擎。它决定了数据如何被写入磁盘、如何管理元数据、如何保证一致性等核心功能。
BlueStore直接将对象存储在原始块设备上,并消除了文件系统层,从而提高了读写操作速度。
BlueStore将对象元数据存储在块数据库block-database中,块数据库将元数据以k/v的形式存储在rocketsDB数据库中
块数据库被放在一个想叫的BlueFS分区上,专门用来保存RocksDB文件
组件
存储内容
推荐设...
MON配置Ceph监视器(MONs)存储并维护client用来查找MON和OSD节点的集群映射。Ceph客户端必须连接到一个MON来检索集群映射,然后才能向osd读写任何数据。
一般要求奇数个
mon角色有这几种:Leader:第一个获得最新版本集群映射的MON。provider:拥有集群映射最新版本的MON,但不是领导者。Requester:没有集群映射最新版本的MON,必须与provider同步才能重新加入quorum
1234567ceph mon state5: 3 mons at {cephadm-1=[v2:192.168.10.141:3300/0,v1:192....
集群配置方式ceph通过以下来源来获得它的配置 :
编译默认值
集中式数据库(推荐)
本地主机上的配置文件(不推荐)
环境变量
命令行参数(推荐)
运行时参数
集群配置文件ceph.conf每个ceph节点都会存储一个本地集群配置文件,默认位置在/etc/ceph/ceph.conf
这是cephadm创建的初始ceph配置文件
示例文件/usr/share/doc/ceph/sample.ceph.conf
全局配置 → 组件级配置 → 实例级配置
下层配置覆盖上层同名配置
123456789101112131415161718192021222324252627282930...