之前我们已经完成了 Ceph 集群的部署,但是我们如何向 Ceph 中存储数据呢?
-
首先我们需要在 Ceph 中定义一个 Pool 资源池。
-
Pool 是 Ceph 中存储 Object 对象抽象概念。
-
我们可以将其理解为 Ceph 存储上划分的逻辑分区,Pool 由多个 PG 组成;而 PG 通过 CRUSH 算法映射到不同的 OSD 上;同时 Pool 可以设置副本 size 大小,默认副本数量为 3。
一个pool资源池应该包含多少PG数?
OSD总数 | 官方推荐PG数 |
---|---|
小于5个 | 128 |
5-10个 | 512 |
10-50个 | 4096 |
大于50个 | 参考公式(TargetPGsPerOSD,OSDNumber,DataPercent)/PoolReplicatesize |
TargetPGsPerOSD: 每个OSD对应的PG数
OSDNumber:当前OSD总数
DataPercent:当前Pool预计会占用的Ceph集群总空间百分比
PoolReplicatesize:当前pool的副本数
例如:100 * 60 * 50% / 3 = 1000 —> 取最接近2的次方值1024
ceph操作
1.创建存储池
ceph osd pool create <存储池名> <PG数&g