0%

2020-03-25

ceph 简介以日常运维问题

Ceph是一个统一的分布式存储系统,设计初衷是提供较好的性能、可靠性和可扩展性

架构

自下向上,可以将Ceph系统分为四个层次:

  • 基础存储系统RADOS(Reliable, Autonomic, Distributed Object Store,即可靠的、自动化的、分布式的对象存储)ceph一切都以对象形式存储,是ceph的基础
  • 基础库LIBRADOS
  • 高层应用接口:包括了三个部分:RADOS GW(RADOS Gateway)、 RBD(Reliable Block Device)和Ceph FS(Ceph File System)
  • 应用层

组件介绍

  • OSD ( Object Storage Device)
1
实际存储数据的进程。通常一个OSD daemon绑定一个物理磁盘。Client write/read 数据最终都会走到OSD去执行write/read操作。
  • Monitor
1
2
负责监控整个集群健康状态
OSD和monitor之间相互传输节点状态信息,共同得出系统的总体工作状态,并形成一个全局系统状态记录数据结构,即cluster map(monmap osdmap pgmap等)。这个数据结构与RADOS提供的特定算法相配合,便实现了Ceph“无需查表,算算就好”的核心机制以及若干优秀特性
  • Object
1
Ceph最底层的存储单元是Object对象,每个Object包含元数据和原始数据。
  • PG
1
PG全称Placement Grouops,是一个逻辑的概念,引入PG这一层其实是为了更好的分配数据和定位数据。
  • Libradio
1
Rados提供库,因为RADOS是协议很难直接访问,因此上层的RBD、RGW和CephFS都是通过librados访问的
  • CRUSH
1
CRUSH是Ceph使用的数据分布算法,类似一致性哈希,让数据分配到预期的地方。
  • RBD
1
RBD全称RADOS block device,是Ceph对外提供的块设备服务。
  • RGW
1
RGW全称RADOS gateway,是Ceph对外提供的对象存储服务,接口与S3和Swift兼容。
  • MDS
1
MDS全称Ceph Metadata Server,是CephFS服务依赖的元数据服务。

io流程

  1. client 创建cluster handler。
  2. client 读取配置文件。 client 连接上monitor,获取集群map信息。
  3. client 读写io 根据crshmap 算法请求对应的主osd数据节点。
  4. 主osd数据节点同时写入另外两个副本节点数据。
  5. 主节点及副本节点写入状态都成功后,返回给client,io写入完成。

io算法流程

  1. File用户需要读写的文件。File->Object映射:

a. ino (File的元数据,File的唯一id ,rbd即为block_name_prefix)。
b. ono(File切分产生的某个object的累加的序号,默认以4M切分一个块大小)。
c. oid(object id: ino + ono)。

  1. Ceph指定一个静态hash函数计算oid的值,得到pgid。Object->PG映射:

a. hash(oid) & mask-> pgid 。
b. mask = PG总数m(m为2的整数幂)-1 。

  1. PG(Placement Group),用途是对object的存储进行组织和位置映射, 采用CRUSH算法,将pgid代入其中,然后得到一组OSD。PG->OSD映射:

a. CRUSH(pgid)->(osd1,osd2,osd3) 。

rbd io类似

日常运维问题

磁盘损坏(osd下线)

osd 自动摘掉

参考下线流程

osd下线

1
2
3
4
5
6
7
8
9
10
11
12
# 备份crush map
ceph osd getcrushmap -o crushmap-17:26
# 权重改为0
ceph osd crush reweight osd.570 0
ceph osd tree|grep down
ceph -s
# 下线osd
ceph osd crush remove osd.570
ceph -s
ceph osd tree
# 删除对应osd
ceph osd rm osd.570

monitor 节点迁移

集群扩容缩容

日常割接

手动更改集群故障域

新集群上线

测试流程

性能测试

集群:

顺序读写
    - 带宽
    - iops
    - latency
随机读写
    - 带宽
    - iops
    - latency
混合读写
    - 带宽
    - iops
    - latency

单盘:

顺序读写
    - 带宽
    - iops
    - latency
随机读写
    - 带宽
    - iops
    - latency
混合读写
    - 带宽
    - iops
    - latency

稳定性测试

模拟线上故障等